Accessing Private Fields
To access a private field call the Class.getDeclaredField(String name) or
Class.getDeclaredFields() method. The methods Class.getField(String name)
and Class.getFields() methods only return public fields, so they won't work.
Here is a simple example of a class with a private field, and below that the
code to access that field via Java Reflection:
public class PrivateObject {
private String privateString = null;
public PrivateObject(String privateString) {
this.privateString = privateString;
}
}
PrivateObject privateObject = new PrivateObject("The Private Value");
Field privateStringField = PrivateObject.class.getDeclaredField("privateString");
privateStringField.setAccessible(true);
String fieldValue = (String) privateStringField.get(privateObject);
System.out.println("fieldValue = " + fieldValue);
This code example will print out the text "fieldValue = The Private
Value", which is the value of the private field privateString of the
PrivateObject instance created at the beginning of the code sample.