前言
我在写上一篇时,开始选了一个很土的名字“Java超过C#的地方”,然后引起了某些同学的不满,后来修改了个名。我在这里再次申明一下,我没有贬低任何语言之意,纯粹是从一个.NET程序员的角度去看Java,看看是不是有些什么在开发中觉得比较“爽”的东西。务必请用专业的态度来比较各种技术的长短。
Java的枚举是一个“class”
Java的早期版本时没有enum的,大家都用interface里加常量的方式实现,Java 1.5版本之后添加了对enum的支持。
Java认为类C的枚举不是类型安全的(type safe),所以Java中没有枚举,Java的枚举就是类(Enum Class),只是用了一个enum代替class而已(虽然.NET里在MSIL层面枚举最终也是一种“class”)。因为Java的枚举是类,所以就带来一些与C#中的枚举有趣的不同点,比如可以添加方法,可以添加属性。请看下面的Java代码:
enum Role{
),
),
);
5:
private String displayName;
7:
8: Role(String displayName){
this.displayName = displayName;
10: }
11:
public String getDisplayName(){
this.displayName;
14: }
15: }