枚举

1.枚举和类差不多,感觉它跟类中有静态变量一样。声明枚举类型如下:

public enum Dir {
    Left,Right,Up,Down;

}

2。枚举类型比较特别,它可以作为switch的条件,switch参数类型可以是int,short,char,byte,String也可以,Long不行。

public class Test {
    public static void main(String[] args) {
    Dir d=Dir.Down;
    switch (d) {
    case Down:
        System.out.println("down");
        break;
    case Up:
        System.out.println("up");
        break;
    case Left:
        System.out.println("Left");
        break;
    case Right:
        System.out.println("Right");
        break;
    default:
        System.out.println("默认值");
        break;
    }
    System.out.println(Dir.Left);
    }

输出结果:

down
Left

 

3.其他用法,用来作为字典转换功能,比如像数据库中的几个字段都是用字母记录,变回中文意思。

package Enum;
/** 
 * @author: 07
 * @date: 2017年8月31日 下午4:37:12 
 * @version 1.0
 * @parameter test
 * @return  
 */
public class Entity {
    private int num;
    private String name;
    private String remark;
    
    public enum Mobile{
        HUAWEI(1000,"华为手机","耐草"),
        XIAOMI(2000,"小米手机","为发骚而生"),
        MEIZU(3000,"魅族手机","充电两分钟,装逼两小时");
        
        private int num;
        private String name;
        private String remark;
        private Mobile(int num, String name, String remark) {
            this.num = num;
            this.name = name;
            this.remark = remark;
        }
        public int getNum() {
            return num;
        }
        public void setNum(int num) {
            this.num = num;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public String getRemark() {
            return remark;
        }
        public void setRemark(String remark) {
            this.remark = remark;
        }
        
        
        
        
    }

    public int getNum() {
        return num;
    }

    public void setNum(int num) {
        this.num = num;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    @Override
    public String toString() {
        return "Entity [num=" + num + ", name=" + name + ", remark=" + remark + "]";
    }
    

}

测试

package Enum;

import java.util.Iterator;
import java.util.Vector;

import Enum.Entity.Mobile;

/**
 * @author: 07
 * @date: 2017年8月31日 下午5:16:41
 * @version 1.0
 * @parameter 测试枚举类,通常用来给参数提供字典转换
 * @return
 */
public class Test {

    public static void main(String[] args) {
        Vector<Entity> list = new Vector<>();
        for (Mobile m : Mobile.values()) {
            Entity entity = new Entity();
            entity.setName(m.getName());
            entity.setNum(m.getNum());
            entity.setRemark(m.getRemark());
            list.add(entity);
        }

        Iterator<Entity> iterator = list.iterator();
        while (iterator.hasNext()) {
            Entity next = iterator.next();
            System.err.println(next.toString());
        }
        
        System.out.println(Mobile.valueOf("xiaomi".toUpperCase()));

    }

}
posted @ 2017-06-16 17:15  永恒之蓝  阅读(138)  评论(0)    收藏  举报