本文共 1192 字,大约阅读时间需要 3 分钟。
Enumeration接口中定义了一些方法,通过这些方法可以枚举(一次获得一个)对象集合中的元素。
这种传统接口已被迭代器取代,虽然Enumeration 还未被遗弃,但在现代代码中已经被很少使用了。尽管如此,它还是使用在诸如Vector和Properties这些传统类所定义的方法中,除此之外,还用在一些API类,并且在应用程序中也广泛被使用。 下表总结了一些Enumeration声明的方法:
序号 | 方法描述 |
---|---|
1 | boolean hasMoreElements( ) 测试此枚举是否包含更多的元素。 |
2 | Object nextElement( ) 如果此枚举对象至少还有一个可提供的元素,则返回此枚举的下一个元素。 |
以下实例演示了Enumeration的使用:
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()); } } }
以上实例编译运行结果如下:
SundayMondayTuesdayWednesdayThursdayFridaySaturday
序列化的原理是:任何一个readObject方法,不管是显式的还是默认的,它都会返回一个新建的实例,这个新建的实例不同于该类初始化时创建的实例
常规的单例模式(例如:饿汉式,懒汉式,双重锁)在反射攻击下都会失效,而使用枚举可以有效避免反射攻击
单例模式实现的最佳方式:
public enum Singleton { INSTANCE; public Singleton getInstance(){ return INSTANCE; }}
参考:
枚举有关资料
枚举的好处
转载地址:http://efcgi.baihongyu.com/