`
sunxboy
  • 浏览: 2869469 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

枚举的另一种使用

阅读更多

枚举类型一般属性的值为常量,不可动态的变化。
由于系统需要,配置信息是写在数量库中的,在加载系统时,需要读入配置信息去填充枚举类型属性。
故想出这种办法,共享之。

/*************************************************
  Copyright (C), 2008-2009, Sunsoft Team Tech. Co., Ltd.
  File name:           TradeState.java
  Author:   sunbeam    Version:  1.0      Date: 2008-11-5
  Description:         
  Others:         
  Function List:       
    
  History:             
   
 *************************************************/

package com.sztelecom.vbao.enumer;

import com.sztelecom.vbao.exception.ServiceException;
import com.sztelecom.vbao.service.CommonParmeterService;



/**
 * 交易状态
 * @author sunbeam
 * @version 1.0
 * @Date 2008-11-5
 */
public enum TradeState {

	WAIT_PAY("TRADE_STATE_WAIT_PAY"), // 等待付款
	HAS_CREATED("TRADE_STATE_HAS_CREATED"), // 交易已创建
	WAIT_SEND_GOODS("TRADE_STATE_WAIT_SEND_GOODS"), // 等待卖家发货
	WAIT_CFM_GOODS("TRADE_STATE_WAIT_CFM_GOODS"), // 等待买家确认收货
	FINISHED("TRADE_STATE_FINISHED"), // 交易已完成
	CLOSED("TRADE_STATE_CLOSED"), // 交易已关闭
	WAIT_DEAL_REFUND("TRADE_STATE_WAIT_DEAL_REFUND");// 等待处理退款
	
	private String status;
	static String wait_pay;
	static String has_created;
	static String wait_send_goods;
	static String wait_cfm_goods;
	static String finished;
	static String closed;
	static String wait_deal_refund;
	
	private TradeState(String status) {
		this.status = status;
	}
	
	public void init(CommonParmeterService cps) throws ServiceException {

		if (wait_pay == null)
			wait_pay = cps.queryTradeState(WAIT_PAY.getStatus());

		if (has_created == null)
			has_created = cps.queryTradeState(HAS_CREATED.getStatus());

		if (wait_send_goods == null)
			wait_send_goods = cps.queryTradeState(WAIT_SEND_GOODS.getStatus());

		if (wait_cfm_goods == null)
			wait_cfm_goods = cps.queryTradeState(WAIT_CFM_GOODS.getStatus());

		if (finished == null)
			finished = cps.queryTradeState(FINISHED.getStatus());

		if (closed == null)
			closed = cps.queryTradeState(CLOSED.getStatus());

		if (wait_deal_refund == null)
			wait_deal_refund = cps.queryTradeState(WAIT_DEAL_REFUND.getStatus());
	}
	
	public String toString() {
		super.toString();
		switch (this) {
		case WAIT_PAY:
			return wait_pay;
		case HAS_CREATED:
			return has_created;
		case WAIT_SEND_GOODS:
			return wait_send_goods;
		case WAIT_CFM_GOODS:
			return wait_cfm_goods;
		case FINISHED:
			return finished;
		case CLOSED:
			return closed;
		case WAIT_DEAL_REFUND:
			return wait_deal_refund;
		default:
			return "";
		}
	}

	public String getStatus() {
		return status;
	}

	public void setStatus(String status) {
		this.status = status;
	}
}
 

 

分享到:
评论

相关推荐

    说说Java中的枚举 转 可以了,够了 包括EnumSet(Map)

    `EnumMap`则是另一种专门为枚举设计的数据结构,它是`Map`接口的一个实现。与普通`HashMap`相比,`EnumMap`在性能和内存使用上都有优势,因为它的键总是枚举类型,所以不需要进行哈希计算。创建一个`EnumMap`的示例...

    枚举小结

    另一个例子是工厂模式,枚举可以用来决定创建哪种类型的对象,避免了硬编码字符串或数字。 此外,枚举还支持比较操作,方便进行条件判断。在Java中,可以直接使用`==`比较两个枚举变量是否相等,因为它们都是单例的...

    PropertyGrid中的枚举显示为中文

    另一种方法是扩展`PropertyGrid`的默认行为,创建一个自定义的`PropertyDescriptor`类,这个类可以读取枚举的`DescriptionAttribute`并返回中文描述。首先,定义一个`LocalizedPropertyDescriptor`类: ```csharp ...

    java枚举状态机

    Java枚举(Enum)状态机是一种使用枚举类型来实现状态转换逻辑的编程技术,它在Java编程中被广泛应用于管理对象的状态变化。状态机是一种模型,用于描述一个系统或对象在不同时间点可能存在的状态以及如何从一个状态...

    ios-KVO和枚举的简单理解和使用,仅作学习参考.zip

    KVO允许我们观察并响应对象属性值的变化,而枚举则是一种组织和管理一组相关常量的有效方式。下面将详细介绍这两个概念以及它们在实际开发中的应用。 ### Key-Value Observing (KVO) KVO是Objective-C中的一种设计...

    文件枚举工具

    回调函数是一种在特定事件发生时被调用的函数,这里是在枚举到每个文件时触发。它可以接收当前文件的信息,并根据需求执行相应的操作,如读取文件内容、计算文件大小,或者将文件信息存储到数据结构中。这样,开发者...

    枚举当前所有窗口

    "快照抓取"是另一种重要的技术,通过Windows的BitBlt函数或者CreateCompatibleBitmap/SelectObject/GetWindowDC/BitBlt/ReleaseDC等步骤,可以将窗口的内容复制到位图中,形成窗口的快照。这在屏幕截图、录屏或者...

    易语言枚举系统窗口例程

    易语言是一种专为中国人设计的编程语言,它以简体中文作为编程符号,降低了编程的门槛,使得更多非计算机专业的人也能轻松学习编程。在易语言中,枚举系统窗口是一项重要的功能,它允许程序员遍历并处理操作系统中的...

    枚举量的索引问题

    在编程领域,枚举(Enumeration)是一种非常常见且实用的数据类型,它允许我们定义一组具有命名的常量。在C++和Qt框架中,枚举的使用尤其广泛,尤其是在处理固定集合的值时。本篇文章将深入探讨如何在C++和Qt环境下...

    VC++枚举系统当前进程例子

    同时,也可以使用`CreateToolhelp32Snapshot`和`Process32First/Next`函数进行进程枚举,这是另一种方法,但通常适用于更复杂的场景,比如枚举子进程。 总之,通过学习如何在VC++中枚举系统进程,你可以更好地理解...

    VB枚举窗口句柄有源码

    2. **定义回调函数**:回调函数通常接收两个参数,一个是窗口句柄,另一个是额外的数据。在这个函数中,我们可以获取窗口的标题或者执行其他处理。 3. **调用`EnumWindows`**:传入回调函数的地址和一个额外的数据...

    枚举窗口标题然后隐藏

    首先,"枚举窗口过程"是Windows API提供的一种机制,允许程序员遍历系统中所有的窗口或者特定类型的窗口。通常,我们会使用`EnumWindows`函数来实现这一功能。`EnumWindows`接受一个回调函数作为参数,每次枚举到一...

    C++中枚举类型(enum)

    在C++编程语言中,枚举(`enum`)是一种用户定义的类型,它由一组具有整数值的命名常量组成。这些值可以被程序用来代替数字,使代码更具可读性,并且能够表示特定范围内的固定集合。 #### 枚举类型的定义与使用 ...

    枚举窗口句柄代码

    枚举窗口句柄是一种常见的技术,尤其在使用Visual Basic (VB) API时。"枚举窗口句柄代码"通常指的是通过编程方式遍历系统中的所有窗口,并获取它们的句柄、类名等相关信息。 首先,我们要理解“句柄”是什么。句柄...

    c#枚举,数值,字符串间转换

    另一种是获取所有枚举成员的名称列表。 - 获取特定枚举值的名称: ```csharp string name = Enum.GetName(typeof(Colors), 3); // 结果为 "Yellow" string name2 = Enum.GetName(typeof(Colors), Colors.Blue)...

    12-结构体、共用体和枚举类型-自己使用的C语言教程PPT-适合老师备课或者自学.pptx

    共用体是C语言中的另一种复杂数据类型,它可以由多个类型的变量共享同一块存储空间。共用体的定义需要使用关键字union,并且需要指定共用体的名称和成员变量。共用体类型的定义的一般形式为:union 共用体名 { 类型...

    枚举Windows网卡信息

    GetAdaptersAddresses函数是Windows API提供的一种获取网络适配器地址和相关信息的方法。这个函数可以返回所有网络接口的详细信息,包括IP地址、子网掩码、默认网关等。它接受几个参数,如`ULONG Family`(指定地址...

    第十四章枚举

    3. 枚举的枚举操作:例如,C# 中的 Enum 类提供了诸如 HasFlag() 方法,可以检查一个枚举值是否包含另一个枚举值的标志。 五、枚举在实际项目中的应用 1. 用户界面:在创建下拉列表或选项按钮时,枚举常用于定义...

    Java枚举数据类型.pdf

    幸运的是,从Java1.5发行版本开始,就提出了另一种可以替代的解决方案,可以避免int和String枚举模式的缺点,并提供了许多额外的好处。那就是枚举类型(enumtype)。 枚举类型(enumtype)是指由一组固定的常量组成...

Global site tag (gtag.js) - Google Analytics