Вам необходимо использовать Reflection API. Используйте Class.getField () для получения поля, затем вызовите setAccessable (true) для этого поля, чтобы вы могли писать в него, даже если оно закрытое, и, наконец, вы можете вызвать set () для него, чтобы записать новое значение.
Например:
public class A {
private int i;
}
Вы хотите установить для поля 'i' значение 3, хотя оно является приватным:
void forceSetInt(Object o, String fieldName, int value) {
Class<?> clazz = o.getClass();
Field field = clazz.getDeclaredField(fieldName);
field.setAccessible(true);
field.set(o, value);
}
Существует ряд исключений, которые вам нужно будет обработать.