Map<String,Object> session = ActionContext.getContext().getSession(); session.put("longNum",123456);
longNum的值是long类型的,Map<String,Object>的值指定是Object类型的,那为什么可以放long类型的值呢?这是java的什么机制呢?请各位详...
longNum的值是long类型的,Map<String,Object>的值指定是Object类型的,那为什么可以放long类型的值呢?这是java的什么机制呢?请各位详细说明一下原理吧。
展开
4个回答
展开全部
这是java 5之后的“装箱拆箱”机制。
就是说java会在必要的时候自动把基本数据类型和其对应的类之间进行转换。
比如:
ArrayList<Integer> il = new ArrayList<Integer>();
il.add(100);
这个时候java会执行“装箱”机制,自动把基本类型100封装成Integer类。
又如:
Boolean ob = new Boolean(true);
if(ob){...}
这个时候java会执行“拆箱”机制,自动把Boolean类转换为boolean基本类型。
那么看你上面的代码,
session.put("longNum", 123456);
java会先装箱,把123456封装为Long类,而Long类是Object的子类,所以该语句得以顺利执行。
就是说java会在必要的时候自动把基本数据类型和其对应的类之间进行转换。
比如:
ArrayList<Integer> il = new ArrayList<Integer>();
il.add(100);
这个时候java会执行“装箱”机制,自动把基本类型100封装成Integer类。
又如:
Boolean ob = new Boolean(true);
if(ob){...}
这个时候java会执行“拆箱”机制,自动把Boolean类转换为boolean基本类型。
那么看你上面的代码,
session.put("longNum", 123456);
java会先装箱,把123456封装为Long类,而Long类是Object的子类,所以该语句得以顺利执行。
展开全部
Object是任何类型的父类型啊
你放一个子类型当然可以了
Object 就是任何类型都可以
希望对你有帮助
你放一个子类型当然可以了
Object 就是任何类型都可以
希望对你有帮助
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我觉得 学JAVA 的最好还是搞清楚 Object 类的定义 ,那么你的问题就很简单了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
比如Map<String,人类>
里面是不是可以放 “你” 呢?
里面是不是可以放 “你” 呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询