不知道这么提问是否妥当,我的问题是这样的:
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};
而int[] 定义的引用指向一个数组对象,该对象的元素是int类型
Integer[] 定义的引用指向的是另一个数组对象,元素为Integer类型
也就是你说的数组也是对象,int[]与Integer[]不一样
int[] f = new Integer[]{1} 不可能对吧.我没有试成功.求高人指点吧
基础类型就不是类。它们对应的封装类,才是类。
我想,数据类型 要和 类 的概念做一下区分。楼主将 基础类型 单纯的 与 封装类型 混合使用,
之所以能够成功,是因为,楼主使用的是JDK5以后版本的编译器,
在这之前的编译器,是不支持基础类型与封装类自动转换的。
这也就是楼上所说的 自动装箱和自动解箱机制。后面的数组就不可以了,因为,数组本身,就是一种 数据类型,
编译器只做到了,判断你使用的是什么数据类型,
比如你使用的是 基础类型的数据,还是类对象,还是数组对象。
封装类对象可以与基础类型自动转换,但是,
两个不同类型的数组对象(int[]与Integer[]两者是不同类型的数据),是无法转换的。楼主的意思是将数组的内容自动转换,而编译器没实现内容的自动转换。