不知道这么提问是否妥当,我的问题是这样的:
java为原始数据类型提供了风专类,这样就有如下代为int变量可以指向一个Integer类型的对象,但是为什么int型数组 不可以只想一个Integer型的数组呢?如第4行,是不是java也把数组封装成了一个对象呢? 还有如果我想实现int[] f = new Integer[]{1};这样的形式有没有可能呢?
int c = new Integer(2);
long d = new Long(2L);
double e = new Double(2.0);int[] f = new Integer[]{1};
java为原始数据类型提供了风专类,这样就有如下代为int变量可以指向一个Integer类型的对象,但是为什么int型数组 不可以只想一个Integer型的数组呢?如第4行,是不是java也把数组封装成了一个对象呢? 还有如果我想实现int[] f = new Integer[]{1};这样的形式有没有可能呢?
int c = new Integer(2);
long d = new Long(2L);
double e = new Double(2.0);int[] f = new Integer[]{1};
一切皆有可能,你自己修改开源的JDK实现一个新的JDK就可以实现。
做了下实验把jre切换到1.4上就玩不转了,所以推测是1.5特性,搜索了一下是jdk1.5的“Autoboxing/unboxing”特性。以下引用某仁兄的介绍就应该说清楚了。
原文地址:http://blog.csdn.net/sonic_lan/archive/2006/08/04/1019827.aspx
节选:
三、自动装包/拆包(Autoboxing/unboxing) 自动装包/拆包大大方便了基本类型数据和它们包装类地使用。 自动装包:基本类型自动转为包装类.(int >> Integer) 自动拆包:包装类自动转为基本类型.(Integer >> int) 在JDK1.5之前,我们总是对集合不能存放基本类型而耿耿于怀,现在自动转换机制解决了我们的问题。