-1

Java enum、A および B が必要ですが、EnumMap は A および B からこのマップにキーを追加できますか?

EnumMap<? extends Enum,Object> enumMap = new EnumMap(Enum.class);

Object o1 = new Object();
Object o2 = new Object();

Enum e1 = A.X
Enum e2 = B.X
enumMap.put(e1,o1)
enumMap.put(e2,o2)

私は成功しなかったのですが、私が間違っていることはありますか?

4

3 に答える 3

1

マップへのキーとして異なる列挙型を使用しても機能しません。ドキュメントから。

列挙型マップ内のすべてのキーは、マップの作成時に明示的または暗黙的に指定された単一の列挙型から取得する必要があります。

別のマップ実装を使用する必要があります。

于 2013-10-16T12:20:18.393 に答える
0

次の方法で試すことができます。次の例を検討してください。

public enum EnumA {
typeA("1");
 EnumA(String s) {
 }

}

.

public enum EnumB {
typeB("2");

 EnumB(String s) {
}

}

これで、次のようにマップを作成できます。

    Map<Enum,String> enumMap=new HashMap<>();
    enumMap.put(EnumA.typeA,"a");
    enumMap.put(EnumB.typeB, "b");

    System.out.println(enumMap);
于 2013-10-16T12:22:19.633 に答える