限制从int到enum类的转换可以通过以下几种方式实现:
public enum MyEnum {
VALUE1,
VALUE2,
VALUE3;
public static MyEnum fromInt(int value) {
switch (value) {
case 1:
return VALUE1;
case 2:
return VALUE2;
case 3:
return VALUE3;
default:
throw new IllegalArgumentException("Invalid value: " + value);
}
}
}
public enum MyEnum {
VALUE1,
VALUE2,
VALUE3;
private static final Map<Integer, MyEnum> map = new HashMap<>();
static {
map.put(1, VALUE1);
map.put(2, VALUE2);
map.put(3, VALUE3);
}
public static MyEnum fromInt(int value) {
MyEnum result = map.get(value);
if (result == null) {
throw new IllegalArgumentException("Invalid value: " + value);
}
return result;
}
}
public enum MyEnum {
@IntValue(1)
VALUE1,
@IntValue(2)
VALUE2,
@IntValue(3)
VALUE3;
public static MyEnum fromInt(int value) {
for (MyEnum e : MyEnum.values()) {
IntValue annotation = e.getClass().getField(e.name()).getAnnotation(IntValue.class);
if (annotation != null && annotation.value() == value) {
return e;
}
}
throw new IllegalArgumentException("Invalid value: " + value);
}
}
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface IntValue {
int value();
}
以上是限制从int到enum类的转换的几种方法,根据具体的需求和场景选择合适的方法。腾讯云提供的相关产品和服务可以参考腾讯云官方文档:腾讯云产品与服务。
第五届Techo TVP开发者峰会
第五届Techo TVP开发者峰会
腾讯位置服务技术沙龙
《民航智见》线上会议
云+社区沙龙online [技术应变力]
云+社区技术沙龙[第17期]
停课不停学 腾讯教育在行动第四课
北极星训练营
云+社区技术沙龙[第5期]
小程序云开发官方直播课(应用开发实战)
领取专属 10元无门槛券
手把手带您无忧上云