public final static ChessmanType BLANK = new ChessmanType(i++); public final static ChessmanType GENERAL = new ChessmanType(i++); public final static ChessmanType VCHESSMAN = new ChessmanType(i++); public final static ChessmanType HCHESSMAN = new ChessmanType(i++); public final static ChessmanType SOLIDER = new ChessmanType(i++); }实际上 JDK 1.5 中 enum 的内部也是采用这种方法来解决的。
还有直接用老做法,做成简单的常量 public class ChessmanType { public final static int BLANK = 0x00; public final static int GENERAL = 0x01; public final static int VCHESSMAN = 0x02; public final static int HCHESSMAN = 0x03; public final static int SOLIDER = 0x04; }
System.out.println(ChessmanType.Blank.ordinal());
}
}enum ChessmanType {
Blank,
General,
VChessman,
HChessman,
Solider;
}如果需要自定义值的话,可以采用下面的方式:public class Test3 { public static void main(String[] args) {
System.out.println(ChessmanType.Blank.getValue());
}
}enum ChessmanType {
Blank (0),
General (1),
VChessman(2),
HChessman(3),
Solider (4);
private int value;
ChessmanType(int value) {
this.value = value;
}
public int getValue() {
return value;
}
}
System.out.println(ChessmanType.BLANK.getValue());
}
}public class ChessmanType {
private int value;
private static int i = 0;
private ChessmanType(int value) {
this.value = value;
}
public int getValue() {
return value;
}
public final static ChessmanType BLANK = new ChessmanType(i++);
public final static ChessmanType GENERAL = new ChessmanType(i++);
public final static ChessmanType VCHESSMAN = new ChessmanType(i++);
public final static ChessmanType HCHESSMAN = new ChessmanType(i++);
public final static ChessmanType SOLIDER = new ChessmanType(i++);
}实际上 JDK 1.5 中 enum 的内部也是采用这种方法来解决的。
public class ChessmanType {
public final static int BLANK = 0x00;
public final static int GENERAL = 0x01;
public final static int VCHESSMAN = 0x02;
public final static int HCHESSMAN = 0x03;
public final static int SOLIDER = 0x04;
}