26 lines
791 B
Java
26 lines
791 B
Java
import java.lang.reflect.Field;
|
|
|
|
public class Expose {
|
|
|
|
public static void main(String[] args) {
|
|
Confidential message = new Confidential("top secret text");
|
|
Field secretField = null;
|
|
try {
|
|
secretField = Confidential.class.getDeclaredField("secret");
|
|
}
|
|
catch (NoSuchFieldException e) {
|
|
System.err.println(e);
|
|
System.exit(1);
|
|
}
|
|
secretField.setAccessible(true); // break the lock!
|
|
try {
|
|
String wasHidden = (String) secretField.get(message);
|
|
System.out.println("message.secret = " + wasHidden);
|
|
}
|
|
catch (IllegalAccessException e) {
|
|
// this will not happen after setAccessible(true)
|
|
System.err.println(e);
|
|
}
|
|
}
|
|
}
|