深入浅出J2SE 5.0 枚举类型(三)

2014-11-24 01:45:27 · 作者: · 浏览: 2
来返回自身一个实例的能力)

现在我们回过头来看看Enum>

如果你明白了上述Foo及其子类所使用的规则,那么再回过头来看为什么java.lang.Enum 被定义为Enum>.

E被用作getDeclaringClass()的返回值

E被用作compareTo()的参数

这意味着你可以在完成下面的代码并且得到如下的便利a)不用强制类型转换b) 使用Enum的子类来作为Enum方法的参数

Java代码

Rank r = Rank.ACE;

Suit s = Suit.HEART;

r.compareTo(s);; // 语法错误,参数必须是Rank类型

Rank z = Enum.valueOf(Rank.class, "TWO");;//不需要经过类型转换