java枚举类常用方法

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

回到顶部