枚举比较
枚举可以用于一些状态、字典等定义,有时我们需要将给定值与枚举元素进行比较,此时就需要提供一个支持枚举比较的方法
/**
* 基本的枚举接口,提供比较方法
*/
public interface BaseEnum<T> {
T getCode();
/**
* 枚举元素的比较
*
* @param inputVal
* @return
*/
default boolean enumEquals(T inputVal) {
return Objects.equals(getCode(), inputVal);
}
}
如Http状态枚举:
public enum HttpStatusEnum implements BaseEnum<Integer> {
OK(200, "OK"),
NOT_FOUND(404, "Not Found"),
INTERNAL_SERVER_ERROR(500, "Internal Server Error"),
;
final Integer code;
final String description;
HttpStatusEnum(Integer code, String description) {
this.code = code;
this.description = description;
}
@Override
public Integer getCode() {
return code;
}
public String getDescription() {
return description;
}
}
调用枚举元素的比较方法:
boolean b = HttpStatusEnum.OK.enumEquals(200);
boolean c = HttpStatusEnum.NOT_FOUND.enumEquals(404);
System.out.println(b);
System.out.println(c);