NoSuchFieldException when field exists
The getField
method will only find the field if it's public
. You will need to use the getDeclaredField
method instead, which will find any field that is declared directly on the class, even if it's not public
.
According to the javadoc, Class.getField()
"Returns a Field
object that reflects the specified public member field of the class or interface represented by this Class
object".
Use getDeclaredField()
if you want to access non-public fields.