gpt4 book ai didi

java - 用 Java 中的类替换枚举结构是否仍然相关?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:54:17 24 4
gpt4 key购买 nike

我正在阅读 Joshua Bloch 于 2008 年出版的 Effective Java,其中一个技巧是用类替换枚举结构。这是书中显示的示例。

public class Suit {
private final String name;
public Suit(String name) { this.name = name; }
public String toString() { return name; }
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");
}

我的问题是,既然 Java 现在支持枚举类型,那么使用上面的方法仍然是个好主意吗?这是 Java 枚举类型的示例。

public enum Day {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY,
THURSDAY, FRIDAY, SATURDAY
}

最佳答案

“Effective Java”一书在 enum 引入语言之前就已经写好了,所以我建议改用 enum 特性。幸运的是,Java enum 用途广泛,因此您可以使用 enum 功能非常严格地遵循 Joshua 的建议:

public enum Day {
SUNDAY("Sunday", 0)
, MONDAY("Monday", 1)
, TUESDAY("Tuesday", 2)
, WEDNESDAY("Wednesday", 3)
, THURSDAY("Thursday", 4)
, FRIDAY("Friday", 5)
, SATURDAY("Saturday", 6);

private String name;
private int ordinal;
public String getName() { return name; }
public int getOrdinal() { return ordinal; }
public Day(String name, int ordinal) {
this.name = name;
this.ordinal = ordinal;
}
}

关于java - 用 Java 中的类替换枚举结构是否仍然相关?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16716304/

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