Accéder à un champ privé d’un objet en java

La réflexion permet beaucoup de choses, notamment il est possible d'accéder à un champ privé d'un objet.

public class TestAccess {
@Test
public void testMe() throws SecurityException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException {

Object tested = new MyObject();
Field field = tested.getClass().getDeclaredField("values");
field.setAccessible(true);

Map<Object, Object> values = (Map<Object, Object>) field.get(tested)
System.out.println(values.toString());
}

}

class MyObject {
private Map<Object, Object> values = new HashMap<Object, Object>();

public MyObject() {
super();
this.values = new HashMap<Object, Object>();
}
}

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Captcha *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.