枚举可以用于一些状态、字典等定义,有时我们需要将给定值与枚举元素进行比较,此时就需要提供一个支持枚举比较的方法
/*** 基本的枚举接口,提供比较方法*/
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;}@Overridepublic 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);