枚举
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())); } }

浙公网安备 33010602011771号