在选项个数相对已知的情况下,为避免代码中写死一些值,方便可扩展,定义枚举类来实现。
public enum Sex {
woman(0, "女"),
man(1, "男"),
secret(2, "保密");
public final Integer type;
public final String value;
Sex(Integer type, String value) {
this.type = type;
this.value = value;
}
}
如何使用
未使用枚举类实现:user.setSex(2);
改善之后:user.setSex(Sex.secret.type);
enum知识补充
enum Shrubbery { GROUND, CRAWLING, HANGING}
public class EnumDemo {
public static void main(String[] args) {
//调用enum的values()方法,返回enum实例的数组,而且该数组中的元素严格保持其在enum中声明时的顺序。
Shrubbery[] values = Shrubbery.values();
for (Shrubbery s:Shrubbery.values()) {
//ordinal()方法返回一个int值,这是每个enum实例在声明是的次序,从0开始。
System.out.println(s + "--ordibnal:" + s.ordinal());
//GROUND--ordibnal:0
//CRAWLING--ordibnal:1
//HANGING--ordibnal:2
//如果在enum实例上调用getDeclaringClass()方法,我们就能知道其所属的enum类
System.out.println(s.getDeclaringClass());
//name()方法返回enum实例声明时的名字,这与使用toString()方法效果相同。
System.out.println(s.name());
}
}