suit.java
来自「书籍Effective java的源代码」· Java 代码 · 共 38 行
JAVA
38 行
// Ordinal-based typesafe enum - Page 106, serializable as per Page 107
import java.util.*;
import java.io.*;
public class Suit implements Comparable, Serializable {
private final transient String name;
// Ordinal of next suit to be created
private static int nextOrdinal = 0;
// Assign an ordinal to this suit
private final int ordinal = nextOrdinal++;
private Suit(String name) { this.name = name; }
public String toString() { return name; }
public int compareTo(Object o) {
return ordinal - ((Suit)o).ordinal;
}
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");
// Exporting constants - Page 106
private static final Suit[] PRIVATE_VALUES =
{ CLUBS, DIAMONDS, HEARTS, SPADES };
public static final List VALUES =
Collections.unmodifiableList(Arrays.asList(PRIVATE_VALUES));
private Object readResolve() throws ObjectStreamException {
return PRIVATE_VALUES[ordinal]; // Canonicalize
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?