我最近决定开始使用enum作为我的卡套装,但无论我如何键入代码,似乎无法解决此错误。
编辑:
/**
*
* A basic constructor class that build the card object.
* The card object will contain value for both the Suit and
* card's Value.
*
*
*
*/
public class Card {
public Enum SUIT{SPADE, CLUB, DIAMOND, HEART};
// This will identify the card suit.
public Enum suit;
//This will hold the card value.
//Jack = 11 ... Ace = 14
public int value;
public Card(Enum suit, int value){
this.suit = suit;
this.value = value;
}
}
我在网站上查找了各种答案,并查看了Orcacle上的官方Java文档。有人可以帮我解决这个问题吗?
更新:
/**
* *构建卡对象的基本构造函数类。 *卡片对象将包含套装和套装的价值 *卡的价值。 * * * * / 公共类卡{
public enum Suit{SPADE, CLUB, DIAMOND, HEART};
// This will identify the card suit.
private final Suit suit;
//This will hold the card value.
//Jack = 11 ... Ace = 14
private final int value;
public Card(Suit suit, int value){
this.suit = suit;
this.value = value;
}
}
这里是错误的屏幕截图: A screenshot of the error
答案 0 :(得分:2)
Enum
是一个类名(它是base class of all enum
s)。您需要将Suit
类声明为:
public enum Suit{SPADE, CLUB, /* etc */}
然后,为了接受Suit
的实例作为构造函数的参数,请创建参数类型Suit
以及相应的字段:
public Suit suit;
public int value;
public Card(Suit suit, int value) {
this.suit = suit;
this.value = value;
}
其他一些观察结果:
suit
和value
字段设为私有,并添加访问者方法(getSuit()
,getValue()
)。目前,没有什么能阻止课外的人改变它们。final
,除非有充分的理由希望能够在这个类中稍后更改它们,或者你想为它们公开setter(我无法想象这是什么原因)会是)value
的范围是2到14之间;或者,为卡值创建枚举。这是一次性的一次性打字,但它会导致更多的描述性代码(例如,您可以使用Value.ACE
而不是想知道是否应该使用1或14代表该卡)答案 1 :(得分:0)
如果要定义枚举类型
// lowercase
public enum SUIT{SPADE, CLUB, DIAMOND, HEART};
如果你想拥有变量SUIT
SUIT suit;
答案 2 :(得分:0)
public static int convertStringToInt(String num) {
int result = 0;
for (char c: num.toCharArray()) {
c -= 48;
if (c <= 9) {
result = (result << 3) + (result << 1) + c;
} else return -1;
}
return result;
}
是您正在寻找的正确关键字。
<强>更新强>
要使代码正常工作,请将enum
(主要是拼写错误)更改为Suit
(由您声明的枚举)
SUIT
答案 3 :(得分:0)
您的最新编辑显示了包含以下代码的屏幕截图:
public class Card {
public enum Suit {SPADE, CLUB, DIAMOND, HEART};
public final SUIT suit;
你的枚举声明没问题。您收到错误消息&#34;枚举的事实无法解析为类型&#34;建议您的编译设置针对Java的过时版本。在Java 1.5之前,枚举不存在。
确保使用最新的Java编译器(1.8),然后进入项目的Eclipse属性。单击Java Compiler。在JDK合规性下,确保将其设置为1.5或更高版本(最好是1.8)。
你的下一个错误是SUIT!= Suit。小心你的信件。