-1

列挙型から整数値、文字列値を含む静的ハッシュマップをロードするメソッドを抽象化しようとしています。私の具体的な方法は次のようになります

public static Map<Integer, String> myMap = new HashMap<Integer, String>;
static{
    Enumeration<MyEnum> enumTokens = MyEnum.getTokens(); //returns an enumeration of 'MyEnum'
    //like to abstract  the following into a method
    while (enumTokens.hasMoreElements()){
        MyEnum element = (MyEnum) enumTokens.nextElement();
        myMap.put(element.intValue(), element.toString());
    }
}
4

1 に答える 1

0

これを行う一般的な方法を次に示します。

の意味が何かを言っていないことに注意してください。そのintValue()ためのインターフェイスを作成しました。

interface HasIntValue {
    int intValue();
}

public static <E extends Enumeration<E> & HasIntValue> Map<Integer, String> convertToMap(E e) {
    Map<Integer, String> map = new HashMap<Integer, String>();
    while (e.hasMoreElements()){
        E element = e.nextElement();
        map.put(element.intValue(), element.toString());
    }
    return map;
}

型を との両方 バインドできる構文に注意してください。Enumeration HasIntValue

于 2012-11-06T19:34:43.470 に答える