私はGuava documentation例IKnowMyType
に示すようTypeToken
を使用して、実行時に型パラメータを検索しようとしています:TypeTokenを使用して型パラメータを取得する方法は?
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());
}
}
私はこのコードを実行すると、私は出力としてclass java.lang.Enum
を取得します。代わりにclass MyEnum
が得られないのはなぜですか?
わかりません。あなたの答えには「サンプル」とは何ですか? 'Sample extends Test'サブクラスを作成して、' Sample.enumType'を調べることができると言っていますか? – Gili
@Gili申し訳ありませんが、自分のテストクラスを使用していました。 'Sample'はあなたの' Test'です。 'Test'の匿名サブクラスを作成します。 –
それは動作します。ありがとうございます! :) – Gili