Java中的枚举(Enumeration)

本文介绍了Java中枚举类型(enum)的使用方式及其特性,包括事务消息执行状态与计量单位的枚举实例。同时,回顾了传统枚举接口Enumeration的基本方法,如hasMoreElements()和nextElement(),并提供了Vector与Enumeration结合使用的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Enumeration接口中定义了一些方法,通过这些方法可以枚举(一次获得一个)对象集合中的元素。

这种传统接口已被迭代器取代,虽然Enumeration 还未被遗弃,但在现代代码中已经被很少使用了。尽管如此,它还是使用在诸如Vector和Properties这些传统类所定义的方法中,除此之外,还用在一些API类,并且在应用程序中也广泛被使用。 下表总结了一些Enumeration声明的方法:

1.boolean hasMoreElements( )

   判断此枚举是否包含更多的元素

2.Object nextElement( )

   如果此枚举对象至少还有一个可提供的元素,则返回此枚举的下一个元素。


import java.util.Vector;
import java.util.Enumeration;
 
public class EnumerationTester {
 
   public static void main(String args[]) {
      Enumeration<String> days;
      Vector<String> dayNames = new Vector<String>();
      dayNames.add("Sunday");
      dayNames.add("Monday");
      dayNames.add("Tuesday");
      dayNames.add("Wednesday");
      dayNames.add("Thursday");
      dayNames.add("Friday");
      dayNames.add("Saturday");
      days = dayNames.elements();
      while (days.hasMoreElements()){
         System.out.println(days.nextElement()); 
      }
   }
}

 结果:

Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday

单个枚举类:

/**
 * 事务消息的执行状态枚举类
 * @author bc
 */
public enum TransactionExecutionStatus {

    IsExecuting(1,"正在执行"),
    ExecutingSuccess(2,"执行成功"),
    ExecutingFailure(3,"执行失败");

    /**
     * 事务消息的执行状态编码
     */
    private int code;

    /**
     * 事务消息的执行状态名称
     */
    private String name;

    public int getCode() {
        return code;
    }

    public String getName() {
        return name;
    }

    TransactionExecutionStatus(int code, String name) {
        this.code = code;
        this.name = name;
    }
}

一般情况下推荐使用下述这种方式:

/**
 * 枚举类
 */
public class ApprovalEnum {

    //1.计量单位枚举
    public enum UnitidValType{
        ONLY("008","只"),
        HEAD("009", "头"),
        KG("035", "千克");
        private String code;
        private String name;
        public String getCode() {
            return code;
        }
        public String getName() {
            return name;
        }
        UnitidValType(String code,String name){
            this.code = code;
            this.name = name;
        }
        public static String getCodeByName(String name){
            for(UnitidValType unitidValType:UnitidValType.values()){
                if (unitidValType.getName().equals(name)) {
                    return unitidValType.getCode();
                }
            }
            return  null;
        }
    }

    // 另外一个枚举
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值