2016-06-29 7 views
0


私のクラスが実装するインターフェースを作成しましたが、Class<?>を引数とするカウンター・コンストラクタを持つenumを持っています。 Enum(Class<?> class)のようなもので、enumにはそのクラスを返す関数があります。 classの引数で自分のインタフェースを実装する必要があります。また、あとでenumのvalues()をループしてクラスを取得し、初期化してHashMapに入れます。クラスを保存するenumを繰り返し、クラスを初期化してマップに配置します

ありがとうございました。その後

Class<? extends YourInterface> 

答えて

3

はワイルドカードでupper boundを使用し

Map<MyEnum, Class> map = new HashMap<>(); 

for(MyEnum e : MyEnum.values()) { 
    map.put(e, e.getClazz()); 
} 
+0

わかりましたが、どのように私は彼らのinitループのために後でやる、とに入れHashMap ?簡単な答えをありがとう。 – ArsenArsen

+0

'clazz'が' Class <? 'のインスタンスである場合、 extends MyInterface> 'の場合、' clazz.newInstance() 'の結果は' MyInterface'のインスタンスです。 –

+0

ありがとうございました!あなたの助けプラスいくつかのグーグルが私を助けました! – ArsenArsen

0
public enum MyEnum { 

    VALUE_1(ClassA.class); 

    private Class<? extends MyItf> clazz; 

    MyEnum(Class<? extends MyItf> clazz) { 
    this.clazz = clazz; 
    } 

    public Class<? extends MyItf> getClazz() { 
    return clazz; 
    } 
} 

enum.values()のループ:

関連する問題