比如Color类
传入一个String c="red"
怎么按照这个得到Color.red
如果传入c="black"那么得到Color.black我知道if else 或者swith可以做到但是我要考虑所有的颜色 那写判断就太麻烦了

解决方案 »

  1.   

    Color.valueOf("red");即可,无需更多代码
      

  2.   

    这个Color不会是java.awt.Color吧
    enum Color{red};
      

  3.   


    enum Color{
        
        RED("red"),BLACK("black"),WHITE("white");
        
        private String color;
        
        Color(String color){
            this.color = color;
        }
        public String getName(){
            return this.color;
        }
        public static Color getColor(String color){
            for(Color c :Color.values()){
                if(c.getName().equals(color)){
                    return c;
                }
            }
            return null;
        }
    }
    public class EnumTest {
        public static void main(String[] args) {
            Color RED = Color.getColor("red");
            System.out.println(RED);
        }
    }
      

  4.   


    我说的的确是java.awt.Color,因为LZ命题有点大
      

  5.   

    System.out.println(Color.getColor("RED"));
    返回是Null啊