gpt4 book ai didi

java - 如何实现枚举类型的某些方法

转载 作者:行者123 更新时间:2023-12-01 18:08:40 27 4
gpt4 key购买 nike

我是编程和 Java 新手,目前正在学习枚举类型。

我创建了一个枚举类型Card,它存储一副纸牌中每张纸牌的值,例如二 = 2,三 = 3 ... Ace = 11。每张图片卡都有相同的值,10。

我正在尝试实现一个方法getPrevious(),它将返回列表中的前一个枚举值。例如,如果在 SIX 上调用该方法,它将返回 FIVE,在 TWO 上调用该方法将返回 ACE >。然而我正在努力寻找一种方法来做到这一点。

下面您可以看到我编写的当前代码,任何有关如何实现方法 getPrevious() 的帮助或提示都会非常有帮助。

public class EnumPractice {

public enum Card {
TWO(2), THREE(3), FOUR(4), FIVE(5), SIX(6), SEVEN(7), EIGHT(8),
NINE(9), TEN(10), JACK(10), QUEEN(10), KING(10), ACE(11), ;

private int value;
private Card card;

Card(int value){
this.value = value;
}

public int getValue(){
return value;
}

public String toString(){
return "The value of this card is: " + value;
}
}

public static void main(String[] args) {
System.out.println(Card.ACE.getValue());
}
}

最佳答案

您的 getPrevious() 方法可能如下所示

public enum Card {
TWO(2), THREE(3), FOUR(4), FIVE(5), SIX(6), SEVEN(7), EIGHT(8),
NINE(9), TEN(10), JACK(10), QUEEN(10), KING(10), ACE(11);

private int value;

Card(int value) {
this.value = value;
}

public int getValue() {
return value;
}

public Card getPrevious() {
int previous = ordinal() - 1;
if (previous < 0 ) { // if negative, then we have to go to the last element
previous += values().length;
}

return Card.values()[previous];
}
}

关于java - 如何实现枚举类型的某些方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34518019/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com