0

私はそのように定義された列挙型を持っています:

private static enum COLOR {
    BLACK(Color.BLACK,"Black"),
    GREEN(Color.GREEN,"Green");

    private Color color;
    private String name;

    COLOR(String n, Color c) {
        this.name = n;
        this.color = c;
    }

文字列に基づいてenum定数を取得する方法を見つけようとしています(これは2番目の追加パラメーターです。したがって、完全に架空の例として、Idは次のようにします

COLOR.getEnumFromString("Green")
4

3 に答える 3

3
  public static COLOR getEnumFromString(final String value) {
        if (value == null) {
            throw new IllegalArgumentException();
        }

        for (COLOR v : values()) {
            if (value.equalsIgnoreCase(v.getValue())) {
                return v;
            }
        }

        throw new IllegalArgumentException();
    }
于 2013-04-18T18:53:36.160 に答える
0

を維持し、Map<String, COLOR>でマップを確認しますgetEnumFromString。次のようなものをお勧めします。

 public enum COLOR{
       ....

       private static class MapWrapper{
           private static final Map<String, COLOR> myMap = new HashMap<String, COLOR>();
       }

      private COLOR(String value){
          MapWrapper.myMap.put(value, this);
      }
 }
于 2013-04-18T18:55:06.427 に答える