I am trying to obtain a field’s value via reflection. The problem is I don’t know the field’s type and have to decide it while getting the value.
This code results with this exception:
Can not set java.lang.String field com….fieldName to 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);
I tried to cast, but I get compilation errors:
field.get((targetType)objectValue)
or
targetType objectValue = targetType.newInstance();
How can I do this?
Like answered before, you should use:
Another way, which is sometimes prefered, is calling the getter dynamically. example code:
Also be aware that when your class inherits from another class, you need to recursively determine the Field. for instance, to fetch all Fields of a given class;