public enum ChessmanType
{
Blank = 0,
General = 1,
VChessman = 2,
HChessman = 3,
Solider = 4
}

解决方案 »

  1.   

    如果值是按顺序下去的,并且是从 0 开始的话,可以这样:public class Test3 {    public static void main(String[] args) {
            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;
        }
    }
      

  2.   

    如果你用的是 JDK 1.5 以下的版本,没有 enum 语法,也可以采用类的方法来解决。public class Test3 {    public static void main(String[] args) {
            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 的内部也是采用这种方法来解决的。
      

  3.   

    还有直接用老做法,做成简单的常量
    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;
    }