java java.lang.reflect.Array.getLength 与 array.length
我必须维护一些由不再在公司工作的其他人编写的代码。我看到了一些对 java.lang.reflect.Array.getLength(anArray)
的引用。它有效,但我从未见过使用反射来获取数组长度。有谁知道以下之间的区别:
java.lang.reflect.Array.getLength(anArray)
和 anArray.length
它只是语法糖吗?
谢谢!
I've got to maintain some code written by someone else who is no longer with the company. I'm seeing several references to java.lang.reflect.Array.getLength(anArray)
. Its working, but I've never seen reflection being used to get an array length. Does anyone know the difference between:
java.lang.reflect.Array.getLength(anArray)
andanArray.length
Is it just syntactic sugar?
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果
anArray
是静态类型为数组类型,则应使用anArray.length
(顺便说一句,不是方法调用)。如果您仅将数组作为Object
进行引用,则可以使用反射形式。If
anArray
is statically typed to an array type, you should useanArray.length
(not a method call, btw). You'd use the reflection form if you only had a reference to the array asObject
.这是获取数组长度的技巧,无论是基元数组还是对象数组。这允许编写一个对两种数组类型进行操作的方法。
考虑一个打印任何类型数组内容的方法:
这将与 int[] 或 Object[] 参数一起使用。
否则,您应该只使用 .length 静态字段。
This is a trick to get the length of an array, be it an array of primitives or an array of objects. This allows to write a method that operates on both array types.
Consider a method that prints the content of any type of array:
This will work with int[] or Object[] parameters.
Otherwise you should just use the .length static field.