ฉันพยายามรับค่าฟิลด์ผ่านการสะท้อน ปัญหาคือฉันไม่ทราบประเภทช่องและต้องตัดสินใจขณะรับค่า
รหัสนี้มีผลกับข้อยกเว้นนี้:
ไม่สามารถตั้งค่า java.lang.String field com .... fieldName เป็น 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);
ฉันพยายามแคสต์ แต่พบข้อผิดพลาดในการคอมไพล์:
field.get((targetType)objectValue)
หรือ
targetType objectValue = targetType.newInstance();
ฉันจะทำเช่นนี้ได้อย่างไร?
field.get()
ควรจะเป็นไม่ได้object
objectValue