Using reflection to change the accessibility of a private object field and access it at runtime.
import java.lang.reflect.Field; class Life { private int meaning = 42; } class Hack { public static void main(String args[]){ Life life = new Life(); try { Field field = life.getClass().getDeclaredField("meaning"); field.setAccessible(true); System.out.println(field.get(life)); } catch (NoSuchFieldException e) { e.printStackTrace(); } catch (IllegalAccessException e){ e.printStackTrace(); } } } |
Output:
42