为什么没有java.lang.Array类?如果Java数组是一个对象,它不应该继承Object吗?
- 论坛
- 为什么没有java.lang.Array类?如果Java数组是一个对象,它不应该继承Object吗?
15 浏览
为什么没有java.lang.Array类?如果Java数组是一个对象,它不应该继承Object吗?
这是Java的包树结构:http://docs.oracle.com/javase/7/docs/api/java/lang/package-tree.html。
我读过一个关于Java的教程,它说Java中的数组是对象。
数组类在哪里?为什么我们可以像这样创建数组:
byte[] byteArr = new byte[];
char[] charArr = new char[];
int[] intArr = new int[];
数组会继承Object的方法;例如:
byte thisByte = 1;
byte thatByte = 2;
byte[] theseBytes = new byte[] {thisByte, thatByte};
int inheritance = theseBytes.length; //继承了'length'字段和一些方法
int wasntInWill = thatByte.length; //错误
这里到底发生了什么?
编辑:
根据答案,我现在知道它是java.lang.reflect包中的一个final类。
我现在在我的Android项目中创建了一个java.lang.reflect包,并添加了一个名为Array.java的类。为了确认这是否与原始类冲突,Eclipse给了我一个错误提示“... already exists in path/to/android.jar”。
如果我将相同的类写成java.lang.reflect.Array,但是改变toString()方法...这在我的应用程序中应该可以工作,对吗?