`

枚举类型的基类

阅读更多

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());
    }
}

 

 

分享到:
评论

相关推荐

    JAVA中的枚举类型2:高级特性.doc

    ### JAVA中的枚举类型2:高级特性 #### 概述 枚举类型是Java语言中一个非常实用且灵活的功能。通常情况下,我们将其用于表示一组固定的常量集合,如一周中的几天、颜色选项等。然而,Java中的枚举类型远不止于此。...

    C#中enum和string的相互转换

    枚举类型 Enum为枚举提供基类,其基础类型可以是除 Char 外的任何整型,如果没有显式声明基础类型,则使用Int32。 注意:枚举类型的基类型是除 Char 外的任何整型,所以枚举类型的值是整型值 1、C#将枚举转为字符串...

    线程基类的设计示例代码

    8. **状态管理**:线程可能有多种状态(如新建、运行、等待、结束等),可以设计相应的枚举类型和方法来跟踪这些状态。 以下是一个简化的线程基类设计示例: ```cpp #include #include #include class ...

    C# 枚举转换操作

     注意:枚举类型的基类型是除 Char 外的任何整型,所以枚举类型的值是整型值。  Enum 提供一些实用的静态方法:  (1)比较枚举类的实例的方法  (2)将实例的值转换为其字符串表示形式的方法  (3)将数字的...

    Python中的枚举类型示例介绍

    Python中的枚举类型是通过继承`enum.Enum`基类来创建的。下面是一个简单的示例: ```python from enum import Enum class Color(Enum): red = 1 green = 2 blue = 3 ``` 在上面的例子中,`Color`是一个枚举...

    C#中的枚举.doc

    `System.Enum`是所有枚举类型的基类,它是从`System.ValueType`派生的。`System.Enum`提供了一些方法和属性,比如`GetNames()`和`GetValue()`,用于枚举类型的操作,但它本身不是一个枚举类型,而是一个类类型。 **...

    PHP 枚举类型的管理与设计知识点总结

    首先,我们可以使用常量来代表枚举类型,例如: ```php const YES = '是'; const NO = '否'; ``` 这种方式虽然简单,但不足以提供强大的枚举功能,比如验证、迭代等。因此,通常建议将这些常量封装到类中,并定义...

    Servlet的基类和接口中的方法总结

    - **描述**:返回一个枚举类型的集合,包含了所有初始化参数的名称。 - **实现**:通过调用`config.getInitParameterNames()`来实现。 - **`ServletConfig getServletConfig()`**: - **描述**:返回一个`...

    mybatis中实现枚举自动转换方法详解

    在MyBatis中,枚举类型的自动转换是一个常见的需求,特别是在处理数据库字段与Java枚举类型之间转换时。本文将详细介绍如何在MyBatis中实现枚举的自动转换,以便在查询结果返回时能直接得到对应的枚举实例,无需额外...

    SmartEnum:用于在C#中快速轻松地创建强类型枚举替换的基类

    智能枚举C#枚举的类型安全的面向对象替代方法的实现。 贡献者由于斯科特Depouw和安滔阿尔马达与此项目的帮助! 安装该框架作为一组NuGet软件包提供。 要安装最低要求: Install-Package Ardalis.SmartEnum要安装对...

    C#基类库大全

    C#基类库(Base Class Library,BCL)是.NET框架的核心组成部分,为开发者提供了大量预定义的类、接口和枚举,使得开发C#应用程序变得更加便捷。这个压缩包文件"**C#基类库大全**"很可能包含了.NET框架中的各种常用...

    深入理解C#中的枚举

    `System.Enum`是所有枚举类型的基类,提供了一些通用的方法和属性,如`GetNames`和`GetValues`,但请注意,`System.Enum`本身并不是一个枚举类型,而是一个类。 使用枚举类型可以使代码更易读。下面的例子展示了...

    DirextShow SDK 基类源码

    5. **过滤器的注册与枚举**:通过注册表,DirectShow能够枚举系统中可用的Filters,这对于构建Filter Graph至关重要。理解如何注册自定义Filter对于开发自定义滤镜组件是必要的。 6. **数据流控制**:DirectShow...

    C#基类库大全2013-02-23

    C#基类库(Base Class Library,BCL)是.NET框架的核心组成部分,为开发者提供了大量预定义的类、接口和枚举,用于构建各种类型的Windows应用程序。这些类库覆盖了输入输出、网络通信、数据访问、图形绘制、线程管理...

    [C#基类库大全]---某飞版 2.0

    C#基类库(Base Class Library,BCL)是.NET Framework的核心部分,它提供了一组预定义的类、接口、枚举和委托,用于构建各种类型的应用程序。这些类库涵盖了数据访问、网络通信、文件I/O、图形绘制、多线程等多个...

    Java枚举(enum) 详解7种常见的用法

    但自从引入枚举后,我们可以将相关联的常量组织到同一个枚举类型中,如`Color {RED, GREEN, BLANK, YELLOW}`。这使得常量的管理更加有序,同时提供更好的类型安全。 2. **switch语句支持**: 在JDK 1.6之前,`...

    IMCUI API文档1

    该枚举类型提供了多种容器类型,例如水平布局、垂直布局、网格布局等。 IMCUIBehaviour基类 IMCUIBehaviour是IMCUI库中一个基类,提供了基本的控件行为。该基类包括了多种方法,例如OnDestroy()、m_controlType、...

Global site tag (gtag.js) - Google Analytics