我必須維護一些不再與公司合作的人編寫的代碼。我看到幾個引用java.lang.reflect.Array.getLength(anArray)
。它的工作,但我從來沒有見過反射被用來獲得數組長度。有誰知道的區別:java java.lang.reflect.Array.getLength與array.length
java.lang.reflect.Array.getLength(anArray)
和 anArray.length
難道只是語法糖?
謝謝!
我必須維護一些不再與公司合作的人編寫的代碼。我看到幾個引用java.lang.reflect.Array.getLength(anArray)
。它的工作,但我從來沒有見過反射被用來獲得數組長度。有誰知道的區別:java java.lang.reflect.Array.getLength與array.length
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的工作[]或對象[]參數。
否則,您應該只使用.length靜態字段。