Hallo.
Erstmal: Wieso kann ich eigentlich nicht Elemente wie "Code" über die Forum-Oberfläche hinzufügen? Das ging doch früher immer? Weder über IE noch Firefox ?!
Nun zur eigentlichen Frage: Ich lese mich gerade zum Thema Reflection ein und habe folgendes Beispiel gefunden.
Aber wie funktioniert das, dass man mit getDeclaredField ein Feld ausliest, wovon man den Name gar nicht weiß?
In folgendem Beispiel wird statt secetID einfach secretIdentity verwendet ?! Aber falls es nun mehrere private Attribute gibt, wie soll man das denn rausfinden?
Oder ist das Beispiel nicht korrekt?
Vielen Dank...
Erstmal: Wieso kann ich eigentlich nicht Elemente wie "Code" über die Forum-Oberfläche hinzufügen? Das ging doch früher immer? Weder über IE noch Firefox ?!
Nun zur eigentlichen Frage: Ich lese mich gerade zum Thema Reflection ein und habe folgendes Beispiel gefunden.
Aber wie funktioniert das, dass man mit getDeclaredField ein Feld ausliest, wovon man den Name gar nicht weiß?
In folgendem Beispiel wird statt secetID einfach secretIdentity verwendet ?! Aber falls es nun mehrere private Attribute gibt, wie soll man das denn rausfinden?
Oder ist das Beispiel nicht korrekt?
Code:
class Superhero { public final String name;
private final String secretID;
public Superhero(String name, String secretID) { this.name = name;
this.secretID = secretID;
}
}
class Reporter { public static void main(String[] args) throws ... { Superhero s = new Superhero("Batman",
"Bruce Wayne");
hackIdentity(s);
}
static void hackIdentity(Superhero s) throws ... { Field secret = Superhero.class.
getDeclaredField("secretIdentity");
secret.setAccessible(true);
System.out.println("Identity is " + secret.get(s));
secret.set(s, "Clark Kent");
System.out.println("Identity is now "
+ secret.get(s));
}
}
> java Reporter
Identity is Bruce Wayne
Identity is now Clark Kent
Vielen Dank...