gpt4 book ai didi

java - 我的枚举有什么问题?

转载 作者:行者123 更新时间:2023-12-01 13:55:51 25 4
gpt4 key购买 nike

我正在关注这本书,里面有一个枚举的例子。所以我正在这样做:

  enum Color {
GREEN("GREEN"),
YELLOW("YELLOW"),
RED("RED");

String name;

Color(String name) {
this.name = name;
}

public String getColor() {
return name;
}


}

然后我想创建对象并通过我的类返回颜色,如下所示:

class TrafficLight extends enum<Color> {   // I am getting an error:
// Classes cannot directly extend java.lang.Enum

// ...create objects and etc.


}

如何修复此错误?因为这与我书中的语法完全相同,并且不知道如何使其正确。

编辑:我的书语法:

enum Suit {
CLUBS("CLUBS"),
DIAMONDS("DIAMONDS"),
HEARTS("HEARTS"),
SPADES("SPADES");
String name;
Suit(String name) { this.name = name; }
public String toString() { return name; }
}

class Suit extends Enum<Suit> // pseudo-code only
implements Comparable<Suit>, Serializable {
public static final Suit CLUBS = new Suit("CLUBS");
public static final Suit DIAMONDS = new Suit("DIAMONDS");
public static final Suit HEARTS = new Suit("HEARTS");
public static final Suit SPADES = new Suit("SPADES");
String name;
Suit(String name) { this.name = name; }
public String toString() { return name; }
// ... compiler generated methods ...
}

最佳答案

仔细看。

  • 比较一下:

    class TrafficLight extends enum<Color> 

    有了这个

    class Suit extends Enum<Suit>

    Java 区分大小写。 Enum<Color>enum<Color>非常不同。 (后者是根本不允许的。)

  • 在您的示例中,您尝试创建一个枚举类型,该类型对类型参数使用不同的枚举( TrafficLightColor )。在示例代码中,枚举类型对声明和类型参数使用相同枚举类型 ( Suit )。

  • 你发现这个了吗?

    // pseudo-code only

    您不应该期望编译伪代码。

关于java - 我的枚举有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19633547/

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