枚举类型的基类

1: OptionObject类

 

import java.io.Serializable;

public abstract interface OptionObject extends Serializable
{
  public abstract String getValue();

  public abstract String getText();
}

 

 

2:

 

import    OptionObject;

/*******************************************************************************
 * 枚举类型的基类
 ******************************************************************************/
public class BaseType implements java.io.Serializable, Comparable, OptionObject
{
   /** 枚举类型主键 */
   private String code;

   /** 枚举类型主题 */
   private String text;

   /** 枚举类型备注 */
   private String remark;

   protected BaseType(String code, String text)
   {
      this.code = code;
      this.text = text;
      this.remark = null;
   }

   protected BaseType(String code, String text, String remark)
   {
      this.code = code;
      this.text = text;
      this.remark = remark;
   }

   public String getCode()
   {
      return code;
   }

   /****************************************************************************
    * 实现OptionObject接口中定义的方法
    * @return String
    ***************************************************************************/
   public String getValue()
   {
      return this.code;
   }

   /****************************************************************************
    * 实现OptionObject接口中定义的方法
    * @return String
    ***************************************************************************/
   public String getText()
   {
      return text;
   }

   /****************************************************************************
    * 实现Comparable接口中定义的方法
    * @param o Object
    * @return int
    ***************************************************************************/
   public int compareTo(Object o)
   {
      BaseType type = (BaseType) o;
      return getCode().compareTo(type.getCode());
   }

   /****************************************************************************
    * 覆盖equals方法
    * @param o Object
    * @return boolean
    ***************************************************************************/
   public boolean equals(Object o)
   {
      if (o == this)
      {
         return true;
      }
      if (o instanceof BaseType)
      {
         BaseType type = (BaseType) o;
         return type.getCode() == this.getCode();
      }
      else
      {
         return false;
      }
   }

   /****************************************************************************
    * 覆盖hashCode方法
    * @return int
    ***************************************************************************/
   public int hashCode()
   {
      return code.hashCode();
   }

   /****************************************************************************
    * 覆盖toString方法
    * @return String
    ***************************************************************************/
   public String toString()
   {
      return "code=" + code + " , " + "text=" + text;
   }

   public String getRemark()
   {
      return remark;
   }
  
}

 

3:如何使用

 

public class WorkDayMode extends BaseType {
    /** 对象集合 */
    private static java.util.TreeMap map = new java.util.TreeMap();

 

    private static java.util.List list = new java.util.ArrayList();

 

    private WorkDayMode(int code, String text) {
        super(String.valueOf(code), text, null);
        map.put(getCode(), this);
        list.add(this);
    }

 

    /**
     * 根据编号取合同状态枚举类型
     * @param code 枚举类型主键,范围0~4、-1、9
     * @return 合同状态枚举类型实例
     */


    public static WorkDayMode getType(int code) {
        return (WorkDayMode) map.get(String.valueOf(code));
    }

 

    /**
     * 取合同状态枚举类型列表
     * @return 合同状态枚举类型实例集合
     */
    public static WorkDayMode[] getList() {
        WorkDayMode[] ret = new WorkDayMode[list.size()];
        list.toArray(ret);                     //list中的
        return ret;
    }

 

    /** 0-->返回当前正在工作的开机日期,若没有开机,返回null; */
    public static WorkDayMode CURRENT_WORKDAY = new WorkDayMode(0, "返回当前正在工作的开机日期");

    /** 4-->返回最后一个开机日期,若从未开机,返回null; */
    public static WorkDayMode LAST_WORKDAY = new WorkDayMode(4, "返回最后一个开机日期");

    /** 5-->返回最后一个关机日期,若从未关机,返回null; */
    public static WorkDayMode LAST_CLOSEDAY = new WorkDayMode(5, "返回最后一个关机日期");

    /**
     * 取索引值,对应数据库中参数的类型
     */
    public Integer getKey() {
        return Integer.valueOf(this.getCode());
    }
}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值