DELETE("删除",(short)0) ,
  DAI_FUWUCHE ("等待指派服务车",(short)1),
这些对象的类型都是MachineryServiceStateEnums,枚举本身就是一个类

解决方案 »

  1.   


    public static void main(String[] args) {
    System.out.println(MachineryServiceStateEnums.DELETE.getText());
    System.out.println(MachineryServiceStateEnums.DELETE.getIndex());
    }运行下就很明了了
      

  2.   

    没举的使用
    每个枚举如:DELETE,就是一个MachineryServiceStateEnums类型的实例,
    DAI_CHECK_2 ,也可以这样,这样就是调用无参构造方法产生,
    DAI_CHECK_2 ("等待结算人员审核",(short)8),这里就调用了有两个参数的构造方法,private MachineryServiceStateEnums(String text,Short index)
      {
      this.text = text;
      this.index = index;
      }就是这个构造方法产生,而且必须是private, private String text;
      private Short index;这两个就是属性,因为每个枚举就是一个MachineryServiceStateEnums类型的实例,
    就可以通过geter,seter方法访问
    所以 MachineryServiceStateEnums.DELETE.getXX 因为属性提供了geter,seter方法,
    其实简单说,枚举就是一个构造方法私有化,有自身类型 的常量的 java类,java 类模拟枚举
    public class MachineryServiceStateEnums
    {
        
        private MachineryServiceStateEnums(){}
        
        public static MachineryServiceStateEnums DELETE = new MachineryServiceStateEnums();
    }
      

  3.   

    多谢回答,还请解释下,为什么可以通过text 和index 获得枚举里面的值,我想知道他们是怎么关联在一起的。
      

  4.   

    上面的常量忘了加final了
     public static final MachineryServiceStateEnums DELETE = new MachineryServiceStateEnums();
      

  5.   

    学习。尽管能看懂,比较有意思。。可以理解为 
    DELETE 是new MachineryServiceStateEnums("参数")的一个引用