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;
}
}
// 另外一个枚举
}