Puzzle Java z refleksją i ciągiem
To źródło wysyłaG'Day Mate.
Jak to się dzieje?
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);
}
}
A jeśli zmienimy główne funkcje"Hello World"
donew String("Hello World")
:
System.out.println(new String("Hello World"));
To wyjścieHello world
.
Co się właściwie dzieje?