定义一个枚举类:
@Getter | |
@AllArgsConstructor | |
public enum TheTypeOfCouponOffereds implements TypeOfCoupon | |
{ | |
SignUpForaGift(0, "注册赠送"), | |
GiftOfPurchase(1, "购物赠送"), | |
PresentedToTheAudience(2, "全场赠送"); | |
private final Integer code; | |
private final String message; | |
/** | |
* 获取全部枚举 | |
*/ | |
public static List<TheTypeOfCouponOffereds> getAllEnum() { | |
List<TheTypeOfCouponOffereds> list = Lists.newArrayList(); | |
list.addAll(Arrays.asList(values())); | |
return list; | |
} | |
} |
serviceImpl
/** | |
* 获取优惠类型 | |
* @return | |
*/ | |
public R getType() | |
{ | |
List<TheTypeOfCouponOffereds> allEnum = TheTypeOfCouponOffereds.getAllEnum(); | |
return R.ok().put("data", allEnum); | |
} |
controller
/** | |
* 获取优惠类型 | |
* @return | |
*/ | |
@GetMapping("/getType") | |
public R getType() | |
{ | |
return discountService.getType(); | |
} |
返回结果:
{ | |
"code": 200, | |
"data": [ | |
"SignUpForaGift", | |
"GiftOfPurchase", | |
"PresentedToTheAudience" | |
] | |
} |
这个前端肯定是看不懂的
这里要注意了,注意 @JsonFormat 的用法,这个注解就是把我们要返回的枚举以对象的形式进行序列化,也就是转成(key,value)的格式,你可以理解成就是转换成 Json 格式,你细心点你可以发现 比如我下面的这个枚举,每个枚举值都有 code 和 message 属性,你就可以把它 (每个枚举值) 看做是一个对象.
定义一个接口:
@JsonFormat(shape = JsonFormat.Shape.OBJECT) | |
public interface TypeOfCoupon | |
{ | |
} |
让枚举类实现这个接口:
@Getter | |
@AllArgsConstructor | |
public enum TheTypeOfCouponOffereds implements TypeOfCoupon | |
{ | |
SignUpForaGift(0, "注册赠送"), | |
GiftOfPurchase(1, "购物赠送"), | |
PresentedToTheAudience(2, "全场赠送"); | |
private final Integer code; | |
private final String message; | |
/** | |
* 获取全部枚举 | |
*/ | |
public static List<TheTypeOfCouponOffereds> getAllEnum() { | |
List<TheTypeOfCouponOffereds> list = Lists.newArrayList(); | |
list.addAll(Arrays.asList(values())); | |
return list; | |
} | |
} |
我们再查询:
{ | |
"code": 200, | |
"data": [ | |
{ | |
"code": 0, | |
"message": "注册赠送" | |
}, | |
{ | |
"code": 1, | |
"message": "购物赠送" | |
}, | |
{ | |
"code": 2, | |
"message": "全场赠送" | |
} | |
] | |
} |
其它操作可参考代码:
/** | |
* 获取全部枚举 | |
*/ | |
public static List<PeriodLoanBillEnum> getAllEnum() { | |
List<PeriodLoanBillEnum> list = Lists.newArrayList(); | |
list.addAll(Arrays.asList(values())); | |
return list; | |
} | |
/** | |
* 获取全部枚举值 | |
* | |
* @return List<String> | |
*/ | |
public static List<String> getAllEnumCode() { | |
List<String> list = Lists.newArrayList(); | |
for (PeriodLoanBillEnum each : values()) { | |
list.add(each.code()); | |
} | |
return list; | |
} | |
/** | |
* 通过 Code 获取枚举 | |
*/ | |
public static PeriodLoanBillEnum getEnumByCode(String code) { | |
PeriodLoanBillEnum result = null; | |
for (PeriodLoanBillEnum statusEnum : getAllEnum()) { | |
if (statusEnum.code.equals(code)) { | |
result = statusEnum; | |
break; | |
} | |
} | |
return result; | |
} | |
/** | |
* 得到枚举值码。 | |
* | |
* @return 枚举值码。 | |
*/ | |
public String code() { | |
return code; | |
} | |
/** | |
* 得到枚举描述。 | |
* | |
* @return 枚举描述。 | |
*/ | |
public String message() { | |
return message; | |
} |