序言
关于枚举,相信都学过,它是Java中一种特殊的类,可是总没遇到多少实际用途。总的来说,枚举类的必要是什么,我在开发中遇到的问题就是,枚举最大的用途就是,限制我们某个参数的定义。在实际开发中,有一些特殊参数的类型,大家都公用的参数,那么我们就不能随便设定。这时,就可以使用Enum来定义我们的参数。
一般使用
public enum EnumDemo2 {
A,
B,
C;
}
----------
System.out.println(EnumDemo2.A);
//输出
A
Process finished with exit code 0
构造参数用途
public enum EnumDemo2 {
NOT_FOUND(402),//找不到文件错误码
NOT_JSON(405), //找不到json错误码
ERROR(500); //系统错误码
private int value;
public int getValue() {
return value;
}
private EnumDemo2(int value){
this.value = value;
}
}
----------
System.out.println(EnumDemo2.NOT_FOUND.getValue());
//输出
402
Process finished with exit code 0
这下是不是感觉枚举原来可以这样用啊
测试类
/**
* enum
*
* @Author 佘浩然
* @Package Enums
* @create 2017-07-28 16:42
*/
public class EnumDao {
public static void EnumGenter(EnumDemo2 enumDemo2){
System.out.println("测试枚举");
}
}
如果不出入枚举里面的参数,会不行,这像不像我们在设置状态码的时候,
实现接口或者抽象方法等
public enum EnumDemo2 {
NOT_FOUND(402){
public String toJson(){
return "402错误码";
}
},
NOT_JSON(405){
public String toJson(){
return "405错误码";
}
},
ERROR(500){
public String toJson(){
return "500错误码";
}
};
private int value;
public abstract String toJson();
public int getValue() {
return value;
}
private EnumDemo2(int value){
this.value = value;
}
}
----------
System.out.println(EnumDemo2.NOT_FOUND.toJson());
//console
402错误码
Process finished with exit code 0
总结
1.枚举作为一种特殊的Java类,可以使用构造函数,但是必须为private,方法,属性等
2.常用的方式是,作为我们的参数限制类型。如错误码等规定
3.switch()中也支持枚举类型,不过是在JDK1.5后