定义一个枚举类:

@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;
}