Java枚举获取下一个元素

今天工作中遇到需要获取上一个和下一个枚举值的需求,记录一下

package com.wugongzi.day0121;

/**
 * add by wugongzi 2021/1/21
 */
public enum FamilyLevel {
    LEVEL_1(1, 3000L, "入门"),
    LEVEL_2(2, 27000L, "入门"),
    LEVEL_3(3, 108000L, "入门"),
    LEVEL_4(4, 300000L, "入门"),
    LEVEL_5(5, 675000L, "了解"),
    LEVEL_6(6, 1323000L, "了解"),
    LEVEL_7(7, 2352000L, "了解"),
    LEVEL_8(8, 3888000L, "了解"),
    LEVEL_9(9, 6075000L, "掌握"),
    LEVEL_10(10, 9075000L, "掌握"),
    LEVEL_11(11, 13068000L, "掌握"),
    LEVEL_12(12, 18252000L, "掌握"),
    LEVEL_13(13, 24843000L, "精通"),
    LEVEL_14(14, 33075000L, "精通"),
    LEVEL_15(15, 43200000L, "精通"),
    LEVEL_16(16, 131340000L, "精通"),
    ;

    
    private Integer code;

    private Long count;

    private String description;

    private static FamilyLevel[] vals = values();

    FamilyLevel(Integer code, Long count, String description) {
        this.code = code;
        this.count = count;
        this.description = description;
    }

    public Integer getCode() {
        return code;
    }

    public Long getCount() {
        return count;
    }

    public String getDescription() {
        return description;
    }

		// 是否有上一个  
    public boolean hasPrevious() {
        if (this.ordinal() <= 0) {
            return false;
        }
        return true;
    }

    // 是否有下一个
    public boolean hasNext() {
        if(this.ordinal() >= vals.length - 1) {
            return false;
        }
        return true;
    }

    // 上一个
    public FamilyLevel previous() {
        return vals[(this.ordinal() - 1) % vals.length];
    }

    //下一个
    public FamilyLevel next() {
        return vals[(this.ordinal() + 1) % vals.length];
    }

}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值