Ich versuche, einen Typparameter zur Laufzeit mit TypeToken
wie zeigt, in dem Guava documentation Beispiel zu sehen IKnowMyType
:Wie TypeToken verwenden, um Typparameter abzurufen?
public class Test<E extends Enum<E>> {
private static enum MyEnum {
FIRST,
SECOND
};
private final TypeToken<E> enumType = new TypeToken<E>(getClass()) {
};
public static void main(String[] args) {
Test<MyEnum> container = new Test<>();
System.out.println(container.enumType.getRawType());
}
}
Wenn ich diesen Code ausführen, bekomme ich class java.lang.Enum
als Ausgabe. Warum bekomme ich nicht class MyEnum
statt?
Ich verstehe nicht. Worauf bezieht sich "Sample" in Ihrer Antwort? Wollen Sie sagen, dass ich eine Unterklasse 'Sample extends Test' erstellen muss und dann' Sample.enumType' nachschlagen kann? – Gili
@Gili Sorry, ich habe meine eigene Testklasse benutzt. 'Sample' ist dein' Test'. Sie erstellen eine anonyme Unterklasse von 'Test', ja. –
Das funktioniert. Danke mein Herr! :) – Gili