我必须维护一些由已经离开公司的其他人编写的代码。我看到了几个引用java.lang.reflect.Array.getLength(anArray)
。虽然它能工作,但我从未见过使用反射来获取数组长度。有人知道以下两者之间的区别吗?:
java.lang.reflect.Array.getLength(anArray)
和
anArray.length
它只是语法糖吗?
谢谢!
我必须维护一些由已经离开公司的其他人编写的代码。我看到了几个引用java.lang.reflect.Array.getLength(anArray)
。虽然它能工作,但我从未见过使用反射来获取数组长度。有人知道以下两者之间的区别吗?:
java.lang.reflect.Array.getLength(anArray)
和
anArray.length
它只是语法糖吗?
谢谢!
anArray
的类型在编译时就已经确定为数组类型,你应该使用anArray.length
(注意不是方法调用)。如果你只有一个Object
类型的数组引用,那么你需要使用反射形式。void print(Object array) {
for (int i = 0; i < Array.getLength(array); i++) {
System.out.println(Array.get(array, i));
}
}