java 无类型常量。求解
package com.gimis.sinomach.business.domain.enums;
/**
*
* [服务管理状态枚举]<p>
* [功能详细描述]<p>
* @author JinX
* @version 1.0, 2012-4-13
* @see
* @since gframe-v100
*/
public enum MachineryServiceStateEnums
{
DELETE("删除",(short)0) ,
DAI_FUWUCHE ("等待指派服务车",(short)1),
DAI_FUWUCHE_ARRIVE ("等待服务车到达",(short)2),
DAI_ADD_FORM_1 ("等待填写派出单",(short)3),
DAI_TEL_BACK ("等待电话回馈",(short)4),
DAI_ADD_FORM_2 ("等待填写派出单",(short)5),
DAI_UPLOAD ("等待上传扫描件",(short)6),
DAI_CHECK_1 ("等待服务人员审核",(short)7),
DAI_CHECK_2 ("等待结算人员审核",(short)8),
FINISH ("完成",(short)9);
private String text;
private Short index;
private MachineryServiceStateEnums(String text,Short index)
{
this.text = text;
this.index = index;
}
public Short getIndex()
{
return index;
}
public String getText()
{
return this.text;
}
}
一个类具体如上,看到最上面的部分没看懂,从DELETE开始到FINISH 结束的那段,其实我也不知道那是什么类型,所以求高手指导,最好说清楚用法,举个简单的例子。
------解决方案--------------------不是什么类型,就是个枚举而已......
------解决方案--------------------
没举的使用
每个枚举如: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();
}
------解决方案--------------------学习。尽管能看懂,比较有意思。。可以理解为
DELETE 是new MachineryServiceStateEnums("参数")的一个引用