为什么没有java.lang.Array类?如果Java数组是一个对象,它不应该继承Object吗?

15 浏览
0 Comments

为什么没有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()方法...这在我的应用程序中应该可以工作,对吗?

0