Java数组是原始类型还是对象(或完全其他的对象)?
这个问题基本上是不言而喻的。我无法找到用于数组的API(除了此Arrays之外,但这仅定义了一堆用于处理实际数组的静态辅助函数)。如果没有它的类,这似乎表明数组不能是Object
。
然而,事实上,一个阵列具有公共领域,如length
和方法,它可以调用像.equals()
和.clone()
似乎暗示(强烈)相反完整。
对原始数组的奇数表示和行为有何解释?
作为说明,我现在尝试在.clone()
数组的方法上使用“开放实现” Eclipse功能,希望我能够查看定义此方法的位置和方式(因为它说int []覆盖了它)对象),但实际上导致整个Eclipse冻结并崩溃…
回答:
每个数组类型都有一个类,因此有一个类int[]
,有一个类Foo[]
。这些类是由JVM创建的。你可以通过访问它们int[].class
,Foo[].class
。这些类的直接超类是Object.class
public static void main(String[] args){
test(int[].class);
test(String[].class);
}
static void test(Class clazz)
{
System.out.println(clazz.getName());
System.out.println(clazz.getSuperclass());
for(Class face : clazz.getInterfaces())
System.out.println(face);
}
还有一个编译时子类型规则,如果A
是的子类型B
,A[]
是的子类型B[]
。
以上是 Java数组是原始类型还是对象(或完全其他的对象)? 的全部内容, 来源链接: utcz.com/qa/409127.html