在C++时代就有了枚举值这个类型,它是一种有序键值对的集合,使用枚举类型可以在语义化和结构化之间达成一种平衡。如果我们的代码中到处都是需要文档才能看懂的数字或字符(串)定义的话,那将是一种非常痛苦的事情。老陈最近在学习Java,在对项目重构的时候,就需要枚举类型来优化代码结构,给力的是,Java和.NET等语言(环境)一样都提供了对枚举类型的直接支持
package ObjectDemo;
enum Dir
{
WEST(1),
EAST(2),
SOUTH(3),
NORTH(4);
private int value;
private Dir(int value)
{
this.value = value;
}
public int getValue()
{
return value;
}
public static Dir getDir(int num)
{
for(Dir d : Dir.values())
{
if (d.getValue() == num) {
return d;
}
}
return null;
}
}
public class EnumDemo {
public static void main(String[] args) {
//Dir d1 = Dir.EAST;
//System.out.println(d1.getValue());
Dir d1 = Dir.getDir(2);
System.out.println(d1);
}
}
绑定常量时,.net实现非常简单
enum Colors { WEST = 1, EAST = 2, SOUTH = 3,
NORTH = 4, }
enum Direc
{
EAST(1,"东方"),WEST(2,"西方"),SOUTH(3,"南方"),NORTH(4,"北方");
private int value;
private String name;
private Direc(int value,String name)
{
this.value = value;
this.name = name;
}
public int getValue()
{
return value;
}
public String getName()
{
return name;
}
}