我想知道是否有知道如何使用反射來獲取數組對象的大小?Java反射 - 獲取數組對象的大小
我有一個車輛包含類型的數組對象的組件。
Vehicles.java
public class Vehicles{
private Car[] cars;
// Getter and Setters
}
Car.java
public class Car{
private String type;
private String make;
private String model;
// Getter and Setters
}
我不知道我怎麼會能夠得到車的尺寸陣列車輛內組件使用Java反射?
我目前有以下幾種:
final Field[] fields = vehicles.getClass().getDeclaredFields();
if(fields.length != 0){
for(Field field : fields){
if(field.getType().isArray()){
System.out.println("Array of: " + field.getType());
System.out.println(" Length: " + Array.getLength(field.getType()));
}
}
}
這將導致以下錯誤:
java.lang.IllegalArgumentException: Argument is not an array
at java.lang.reflect.Array.getLength(Native Method)
任何想法?
那麼,你還不如說cars.length :-) – 2013-04-09 16:23:39
你是對的!原始代碼對於如此簡單的事情來說太複雜了,以至於我會搞砸並且保持反射... – Guillaume 2013-04-09 16:27:41