Tôi đang cố gắng để nhận được giá trị trường thông qua sự phản ánh. Vấn đề là tôi không biết loại trường và phải quyết định nó trong khi nhận giá trị.
Mã này dẫn đến ngoại lệ này:
Không thể đặt trường java.lang.String com .... fieldName thành java.lang.String
Field field = object.getClass().getDeclaredField(fieldName);
field.setAccessible(true);
Class<?> targetType = field.getType();
Object objectValue = targetType.newInstance();
Object value = field.get(objectValue);
Tôi đã cố gắng để đúc, nhưng tôi nhận được lỗi biên dịch:
field.get((targetType)objectValue)
hoặc là
targetType objectValue = targetType.newInstance();
Tôi có thể làm cái này như thế nào?
field.get()
nên làobject
, khôngobjectValue
.