Puzzle de java con reflejo y cuerda.
Esta fuente produceG'Day Mate.
¿Cómo está pasando esto?
public static void main(String args[]) {
System.out.println("Hello World");
}
static {
try {
Field value = String.class.getDeclaredField("value");
value.setAccessible(true);
value.set("Hello World", value.get("G'Day Mate."));
} catch (Exception e) {
throw new AssertionError(e);
}
}
Y si cambiamos las funciones principales."Hello World"
anew String("Hello World")
:
System.out.println(new String("Hello World"));
Da salidaHello world
.
¿Qué está pasando en realidad?