Accediendo a variables privadas en Java a través de la reflexión

Intento escribir un método que obtenga un campo privado en una clase utilizando la reflexión.

Aquí está mi clase (simplificada para este ejemplo):

public class SomeClass { private int myField; public SomeClass() { myField = 42; } public static Object getInstanceField(Object instance, String fieldName) throws Throwable { Field field = instance.getClass().getDeclaredField(fieldName); return field.get(instance); } } 

Entonces di que hago esto

 SomeClass c = new SomeClass(); Object val = SomeClass.getInstanceField(c, "myField"); 

IllegalAccessException una IllegalAccessException porque myField es privado. ¿Hay alguna forma de obtener / establecer variables privadas usando la reflexión? (Lo hice en C #, pero esta es la primera vez que lo bash en Java). Si se está preguntando por qué existe la necesidad de hacer tal locura :), es porque a veces, durante las pruebas unitarias, es útil establecer variables privadas en valores falsos para pruebas de fallas, etc.

Lo averigué. Necesitar

 field.setAccessible(true);