学习枚举类型
枚举类型的定义
枚举类型的关键字enum
枚举类的一个实例
public enum EnumClass {
DRAFT("1","草稿"),
APPROVAL("2","审核中"),
SHELVED("3","生效中");
private String key;
private String value;
//一定要创建构造方法,当String类型和String类型时,必须创建构造方法
EnumClass(String key,String value){
this.key = key;
this.value = value;
}
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
使用EnumClass.value()方法时,可将该类的所有枚举类型的遍历出来。
public static void main(String[] args) {
EnumClass[] values = EnumClass.values();
for (EnumClass value : values) {
System.out.println("得到的本身是"+value);
System.out.println("得到的key是"+value.getKey());
System.out.println("得到的value是"+value.getValue());
System.out.println("----------------------");
}
}
运行结果为
使用valueOf方法,对枚举类型进行判断。
EnumStudy enumStudy = EnumStudy.valueOf("SHELVED");
System.out.println(enumStudy.op());
使用枚举类消灭if分支
一、创建一个接口类,方法为处理业务的方法
public interface OP {
String op();
}
二、创建Enum类,创建类型,对应不同的业务场景并实现OP接口。重写OP方法,利用多态完成不同业务场景的处理。
public enum EnumStudy implements OP {
NIHAO() {
@Override
public String op() {
return "你好";
}
},
TAHAO() {
@Override
public String op() {
return "我好";
}
},
WOHAO() {
@Override
public String op() {
return "他好";
}
};
}
三、一条语句完成不同分支的处理
String s = "";//入参
EnumStudy enumStudy = EnumStudy.valueOf("NIHAO");
enumStudy.op();
创建一个内部枚举类
import java.util.HashMap;
import java.util.Map;
public class enumDemo {
enum DataConfig{
ZHANGSAN("张三","男","24"),
LISI("李四","男","25"),
WANGWU("王五","男","26");
/*姓名*/
private String name;
/*性别*/
private String sex;
/*年龄*/
private String age;
DataConfig(String name,String sex,String age){
this.name = name;
this.sex = sex;
this.age = age;
}
public static Map<String,String> getInfoByname(String name) {
Map map = new HashMap(2);
for (DataConfig dataConfig : DataConfig.values()) {
dataConfig.name.equals(name);
map.put("name", dataConfig.name);
map.put("age", dataConfig.age);
}
return map;
}
}
public static void main(String[] args) {
Map<String, String> map = DataConfig.getInfoByname("张三");
System.out.println("得到结果为"+map.toString());
}
}