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:高级特性 #### 概述 枚举类型是Java语言中一个非常实用且灵活的功能。通常情况下,我们将其用于表示一组固定的常量集合,如一周中的几天、颜色选项等。然而,Java中的枚举类型远不止于此。...
枚举类型 Enum为枚举提供基类,其基础类型可以是除 Char 外的任何整型,如果没有显式声明基础类型,则使用Int32。 注意:枚举类型的基类型是除 Char 外的任何整型,所以枚举类型的值是整型值 1、C#将枚举转为字符串...
8. **状态管理**:线程可能有多种状态(如新建、运行、等待、结束等),可以设计相应的枚举类型和方法来跟踪这些状态。 以下是一个简化的线程基类设计示例: ```cpp #include #include #include class ...
注意:枚举类型的基类型是除 Char 外的任何整型,所以枚举类型的值是整型值。 Enum 提供一些实用的静态方法: (1)比较枚举类的实例的方法 (2)将实例的值转换为其字符串表示形式的方法 (3)将数字的...
Python中的枚举类型是通过继承`enum.Enum`基类来创建的。下面是一个简单的示例: ```python from enum import Enum class Color(Enum): red = 1 green = 2 blue = 3 ``` 在上面的例子中,`Color`是一个枚举...
`System.Enum`是所有枚举类型的基类,它是从`System.ValueType`派生的。`System.Enum`提供了一些方法和属性,比如`GetNames()`和`GetValue()`,用于枚举类型的操作,但它本身不是一个枚举类型,而是一个类类型。 **...
首先,我们可以使用常量来代表枚举类型,例如: ```php const YES = '是'; const NO = '否'; ``` 这种方式虽然简单,但不足以提供强大的枚举功能,比如验证、迭代等。因此,通常建议将这些常量封装到类中,并定义...
- **描述**:返回一个枚举类型的集合,包含了所有初始化参数的名称。 - **实现**:通过调用`config.getInitParameterNames()`来实现。 - **`ServletConfig getServletConfig()`**: - **描述**:返回一个`...
在MyBatis中,枚举类型的自动转换是一个常见的需求,特别是在处理数据库字段与Java枚举类型之间转换时。本文将详细介绍如何在MyBatis中实现枚举的自动转换,以便在查询结果返回时能直接得到对应的枚举实例,无需额外...
智能枚举C#枚举的类型安全的面向对象替代方法的实现。 贡献者由于斯科特Depouw和安滔阿尔马达与此项目的帮助! 安装该框架作为一组NuGet软件包提供。 要安装最低要求: Install-Package Ardalis.SmartEnum要安装对...
C#基类库(Base Class Library,BCL)是.NET框架的核心组成部分,为开发者提供了大量预定义的类、接口和枚举,使得开发C#应用程序变得更加便捷。这个压缩包文件"**C#基类库大全**"很可能包含了.NET框架中的各种常用...
`System.Enum`是所有枚举类型的基类,提供了一些通用的方法和属性,如`GetNames`和`GetValues`,但请注意,`System.Enum`本身并不是一个枚举类型,而是一个类。 使用枚举类型可以使代码更易读。下面的例子展示了...
5. **过滤器的注册与枚举**:通过注册表,DirectShow能够枚举系统中可用的Filters,这对于构建Filter Graph至关重要。理解如何注册自定义Filter对于开发自定义滤镜组件是必要的。 6. **数据流控制**:DirectShow...
C#基类库(Base Class Library,BCL)是.NET框架的核心组成部分,为开发者提供了大量预定义的类、接口和枚举,用于构建各种类型的Windows应用程序。这些类库覆盖了输入输出、网络通信、数据访问、图形绘制、线程管理...
C#基类库(Base Class Library,BCL)是.NET Framework的核心部分,它提供了一组预定义的类、接口、枚举和委托,用于构建各种类型的应用程序。这些类库涵盖了数据访问、网络通信、文件I/O、图形绘制、多线程等多个...
但自从引入枚举后,我们可以将相关联的常量组织到同一个枚举类型中,如`Color {RED, GREEN, BLANK, YELLOW}`。这使得常量的管理更加有序,同时提供更好的类型安全。 2. **switch语句支持**: 在JDK 1.6之前,`...
该枚举类型提供了多种容器类型,例如水平布局、垂直布局、网格布局等。 IMCUIBehaviour基类 IMCUIBehaviour是IMCUI库中一个基类,提供了基本的控件行为。该基类包括了多种方法,例如OnDestroy()、m_controlType、...