Tôi đã tự hỏi liệu có bất kỳ hiểu biết nào để có được kích thước của một đối tượng mảng sử dụng sự phản chiếu không?Java Reflection - Lấy kích thước của đối tượng mảng
Tôi có Phương tiện đi lại thành phần chứa đối tượng mảng loại Xe.
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
}
tôi đã tự hỏi làm thế nào tôi sẽ có thể để có được kích thước của xe mảng trong xe thành phần bằng cách sử dụng Java Reflection?
tôi hiện có như sau:
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()));
}
}
}
mà kết quả trong các lỗi sau:
java.lang.IllegalArgumentException: Argument is not an array
at java.lang.reflect.Array.getLength(Native Method)
Bất kỳ ý tưởng?
Vâng, bạn cũng có thể nói cars.length :-) –
Bạn nói đúng! Mã ban đầu quá phức tạp cho một điều đơn giản như vậy mà tôi bị rối tung lên và giữ sự phản chiếu ... – Guillaume