加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 将枚举作为值启动

发布时间:2020-12-15 04:43:07 所属栏目:Java 来源:网络整理
导读:我想将枚举变量声明为值.我怎样才能做到这一点? 例如: public enum CardSuit { SPADE(0),HEART(1),DIAMOND(2),CLUB(3);} 我可以这样声明: CardSuit s = CardSuit.SPADE; 我也想这样声明: CardSuit s = 1; 这样做的方法是什么?这甚至可能吗? 解决方法
我想将枚举变量声明为值.我怎样才能做到这一点?

例如:

public enum CardSuit {
   SPADE(0),HEART(1),DIAMOND(2),CLUB(3);
}

我可以这样声明:

CardSuit s = CardSuit.SPADE;

我也想这样声明:

CardSuit s = 1;

这样做的方法是什么?这甚至可能吗?

解决方法

我想你想要这样的东西,

public static enum CardSuit {
    SPADE(0),CLUB(3);
    int value;

    CardSuit(int v) {
        this.value = v;
    }

    public String toString() {
        return this.name();
    }
}

public static void main(String[] args) {
    CardSuit s = CardSuit.values()[0];
    System.out.println(s);
}

输出是

SPADE

编辑

如果你想按指定的值搜索,你可以用这样的东西来做 –

public static enum CardSuit {
    SPADE(0),DIAMOND(4),CLUB(2);
    int value;

    CardSuit(int v) {
        this.value = v;
    }

    public String toString() {
        return this.name();
    }

    public static CardSuit byValue(int value) {
        for (CardSuit cs : CardSuit.values()) {
            if (cs.value == value) {
                return cs;
            }
        }
        return null;
    }
}

public static void main(String[] args) {
    CardSuit s = CardSuit.byValue(2);
    System.out.println(s);
}

输出是

CLUB

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读