java枚举
理解的不多,看懂的也没多少,觉得有用的就这几项吧!
在switch中使用
在enum类添加方法与构造函数
枚举单例
在switch中使用
https://blog.csdn.net/qq_27093465/article/details/52180865 这个写的挺好的
就是枚举项特别多的时候,还是用int吧!
public enum IntEnum {
zero,
one,
two,
three;
}
常用点可能在这
枚举序列号从 0 开始的
@Test
public void Test4() {
IntEnum enum1 = IntEnum.values()[3]; //int转枚举
System.out.println(enum1);
System.out.println(IntEnum.one.ordinal()); 枚举转int
}
测试结果:
three
1
int转枚举时注意: IntEnum enum1 = IntEnum.values()[5]; 会报数组越界的异常
在enum类添加方法与构造函数
public enum intEnum {
one(1),
two(2),
three(3);
private int num;
public int getNum() {
return num;
}
public void setNum(int num) { //最好不要有 可以充当常量使用
this.num = num;
}
private intEnum(int i)
{
num = i;
}
}
使用
@Test
public void Test4() {
System.out.println(intEnum.one);
System.out.println(intEnum.one.getNum());
intEnum.one.setNum(5);
System.out.println(intEnum.one);
System.out.println(intEnum.one.getNum());
}
结果:
one
1
one
5
枚举单例
参考
https://www.cnblogs.com/cielosun/p/6596475.html
好处:1.线程安全 2,自由序列化3.保证单例,
线程安全方面: 类似饿汉式,所以线程安全
单例模式:是因为 enum有且仅有private的构造器
我不想写了 , 没怎么看懂,而且和在enum类添加方法与构造函数有些部分是重复的;