リフレクションを使用して配列オブジェクトのサイズを取得する方法を知っている人がいるかどうか疑問に思っていましたか?
タイプCarの配列オブジェクトを含む Vehicles コンポーネントがあります。
乗り物.java
public class Vehicles{
private Car[] cars;
// Getter and Setters
}
車.java
public class Car{
private String type;
private String make;
private String model;
// Getter and Setters
}
Java Reflection を使用して、 vehicleコンポーネント内のcars配列のサイズを取得するにはどうすればよいのでしょうか?
私は現在、次のものを持っています:
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)
何か案は?