java java.lang.reflect.Array.getLength vs array.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));
    }
}

这将适用于int[]或Object[]形参。

相关内容

  • 没有找到相关文章

最新更新