22

enumキーとして、オブジェクトを値として使用したい。サンプル コード スニペットは次のとおりです。

public class DistributorAuditSection implements Comparable<DistributorAuditSection>{      

     private Map questionComponentsMap;  

     public Map getQuestionComponentsMap(){  
         return questionComponentsMap;  
     }  

     public void setQuestionComponentsMap(Integer key, Object questionComponents){  
         if((questionComponentsMap == null)  || (questionComponentsMap != null && questionComponentsMap.isEmpty())){ 
             this.questionComponentsMap = new HashMap<Integer,Object>();  
         }  
         this.questionComponentsMap.put(key,questionComponents);  
     }
}

これは、整数キーとオブジェクトを値として持つ通常のハッシュマップになりました。に変更したいと思いEnummapます。キーを使用できるようにしenumます。を使用して値を取得する方法もわかりませんEnummap

4

2 に答える 2

51

MapJust Declareと同じ原理でtoenumとして使用します。KeyEnumMap

public enum Color {
    RED, YELLOW, GREEN
}

Map<Color, String> enumMap = new EnumMap<Color, String>(Color.class);
enumMap.put(Color.RED, "red");
String value = enumMap.get(Color.RED);

詳細はEnums こちら

于 2012-10-01T08:10:42.743 に答える
9

new HashMap<Integer, Object>()に置き換えるだけnew EnumMap<MyEnum, Object>(MyEnum.class)です。

于 2012-10-01T08:13:07.627 に答える