随着Effective Java这本书看的越来越多,发现在平时使用Java时犯了很多明显的错误,自己平时知道一点但缺少使用的也越来越多。
关于枚举类,书中的建议是用枚举类替代传统的静态常量,平时,如果一类数据用不同的数值表示,我正常的做法是写一串const static常量来表示,但看了这本书后发现,这样的表示方法虽然可以达到自己的目的,但是存在一些隐患,比如类型安全,还有,在使用上述方法区分不同的类型时,某一个具体的类型中的方法是在外面用过判断然后调用的,在这种情况下,代码就变得不是很漂亮。
Java中有四种基本数据类型,分别是基本数据类型、数组类型、类类型以及接口类型,枚举类应该是属于类类型,既然枚举类属于类类型中的一种,那么枚举类应该拥有类类型的某些特性,比如构造方法、成员变量、成员方法等,这也就是的枚举类型不只拥有用来区分不同类别的功能,甚至可以为不同的类型添加自己的方法,当然要实现某个接口才行,以及实现一些这些类型的公共方法,所以,用枚举类型来表示不同的类型,会比用不同的static常量灵活很多。
枚举类型和普通的类类型之间的区别应该就在于,枚举类型中的每一个对象都是单例的,所以,在单例模式中,最受推荐的单例模式就是通过枚举实现的单例方式了。当然枚举类型也不是在任何情况下都比静态常量有优势的,比如在资源受限的情况下,还是采用传统的方式比较好一点。
时间: 2024-10-18 13:55:57