java枚举类常用方法
java枚举类是非常常用的类型
下面做一个简单的总结
一、枚举基础
public enum FilterType {DATE_FILTER,
TEXT_FILTER,
SELECT_FILTER;
public static void main(String[] args) {
//通过下标返回枚举对象
FilterType[] values = FilterType.values();
FilterType filterType = values[0];
System.out.println(filterType);
//通过枚举对象返回下标
int index = filterType.ordinal();
System.out.println(index);
//通过枚举对象返回名称
String name = filterType.name();
System.out.println(name);
//通过字符串名称返回枚举对象
FilterType date_filter = FilterType.valueOf("DATE_FILTER");
System.out.println(date_filter);
}
}
二、给枚举类型添加属性
public enum ColumnType {INT("整型"),
DOUBLE("浮点型"),
DATE_YYYY("日期:yyyy"),
DATE_YYYY_MM("日期:yyyy-MM"),
DATE_YYYY_MM_DD("日期:yyyy-MM-dd"),
DATETIME("日期时间"),
VARCHAR("字符串");
private final String value;
ColumnType(String value) {
this.value = value;
}
public String getValue() {
return value;
}
public static void main(String[] args) {
String value = ColumnType.INT.getValue();
System.out.println(value);
}
}
三、给枚举添加方法
如果每个枚举对象都需要有不同的行为,可以通过在枚举类中定义抽象方法的形式实现。
这样每个枚举对象都需要实现这个抽象方法
public enum TemplateStatus {DRAFT(0) {
void say() {
System.out.println("草稿");
}
;
},//草稿
RELEASE(1) {
void say() {
System.out.println("发布");
}
};//发布
private final int value;
TemplateStatus(int value) {
this.value = value;
}
public int getValue() {
return value;
}
abstract void say();
}
四、枚举Set和枚举Map
因为枚举类不能灵活的添加和删除元素,所以java本身又提供了EnumSet和EnumMap来增强这方面的功能。
//EnumSet可以表示包含不包含,开或关EnumSet<ColumnType> columnTypes1 = EnumSet.noneOf(ColumnType.class);
EnumSet<ColumnType> columnTypes = EnumSet.allOf(ColumnType.class);
EnumSet<ColumnType> range = EnumSet.range(INT, VARCHAR);
EnumSet<ColumnType> anInt = EnumSet.of(INT, DOUBLE);
boolean contains = columnTypes.contains(ColumnType.INT);
//EnumMap可以实现类似命令模式或策略模式的功能
EnumMap<ColumnType, String> enumMap = new EnumMap<ColumnType, String>(ColumnType.class);
enumMap.put(ColumnType.INT,"int");
String s = enumMap.get(ColumnType.DOUBLE);
以上是 java枚举类常用方法 的全部内容, 来源链接: utcz.com/z/394176.html