【发布时间】:2019-12-28 10:19:47
【问题描述】:
所以我正在制作一个完全由计算机玩家在控制台中玩的 UnoCard 游戏。我正在学习 UnoCard 课程,但遇到了一个不知道如何解决的错误。我使用枚举作为颜色和值。我收到 2 行代码的这些错误消息:以下代码行(第 32 行)private final Color color; 给了我这个错误消息“变量值可能没有被初始化”并且这行代码(第 33 行)private final Value value; 给出我这个错误消息“可变颜色可能尚未初始化”。在这些错误之后,我还有两个错误消息:(第 35-38 行)public UnoCard(final Color color, final Value value){this.color = color; this.value = value;}“此处不允许公开修饰符”和“无效的方法声明:需要返回类型”。是什么导致了这些错误以及如何修复它们。
我尝试了以下方法:对于第 32 行和第 33 行,我去掉了 final 关键字,对于第 35-38 行,我添加了枚举 Color 作为返回类型,但这没有意义,因为我习惯于枚举颜色和值。
这是我尝试修复之前的 UnoCard 类的代码。
public class UnoCard {
enum Color {
RED, BLUE, GREEN, YELLOW, WILD;
private static final Color[] colors = Color.values();
public static Color getColor(int i){
return Color.colors[i];
}
enum Value {
ZERO, ONE, TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, NINE, SKIP, DRAW_TWO, REVERSE, WILD, WILD_FOUR;
private static final Value[] values = Value.values();
public static Value getValue(int i){
return Value.values[i];
}
}
private final Color color;
private final Value value;
public UnoCard(final Color color, final Value value){
this.color = color;
this.value = value;
}
public Color getColor(){
return this.color;
}
public Value getValue(){
return this.value;
}
@Override
public String toString() {
return color + "_" + value;
}
}
【问题讨论】:
-
错字:您的枚举声明之间缺少右括号。
-
为什么你还有那个颜色数组?
-
错字错误缺少右括号}
-
对不起,伙计们。我应该看到的。