Java - Verweis auf eine statische Klasse mit der spiegelung
In Java, ist es möglich, den Zugriff auf eine Instanz einer statischen Klasse (nested) mit Reflexion?
Angenommen ich habe die folgenden 2 Klassen im Paket definierten Package1.SubPackage installiert.SubSubPackage:
public class MyMainClass {
public static class SalesObjectGrouper1 {
public static final GrouperContext CONTEXT = new GrouperContext("MyDate");
}
private static class SalesObjectGrouper2 {
public static final GrouperContext CONTEXT = new GrouperContext("MyDate");
}
}
Wenn ich den folgenden code ausführen:
try {
xyz = Class.forName( "Package1.SubPackage.SubSubPackage.MyMainClass.SalesObjectGrouper1" );
} catch( ClassNotFoundException ex ) {
//always hit the error
}
es wird die Fehlermeldung Klasse nicht gefunden werden kann. Kann das getan werden?
- btw mit Klasse.forName() nicht verwenden, Reflexion.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie versucht, unter Bezugnahme auf die geschachtelte Klasse als
Geschachtelte Klassen sind intern benannt ContainingClassName$NestedClassName
Vermeiden hacks in der Zuordnung der Sprache Java-Klassen auf, um die Java-runtime-Klassen, die Sie nutzen könnten
Class.getDeclaredClasses
. Mit der spiegelung ist oft ein Fehler. Der Umgang mit den verschachtelten Klassen nicht zu sein scheinen ein gutes Zeichen.