in“A Programmers Guide to Java SCJP Certification”我找到了一个我不能遵循的例子。compareTo和嵌套枚举
这给定的枚举:
enum Scale3 {
GOOD(Grade.C), BETTER(Grade.B), BEST(Grade.A);
enum Grade {A, B, C}
private Grade grade;
Scale3(Grade grade) {
this.grade = grade;
}
public Grade getGrade() { return grade; }
}
这是在给定的表达式:
Scale3.GOOD.getGrade().compareTo(Scale3.Grade.A) > 0;
我不明白为什么这个表达式是真的吗?
返回值将是2。
的compareTo()将返回一个值> 0,如果给定的对象是比对象“少”。
Scale3.Grade.A是等级的“最大”的元素,它的序数是0。
Scale3.GOOD是Scale3的“最大”的元素,它的序数也为0 。
Scale3的构造函数被调用与Scale3.Grade.C,其序号为2
所以给定表达式等于t他下面的代码:
Scale3.Grade.C.compareTo(Scale3.Grade.A) > 0;
一个比ç “做大”,所以不应该是这个结果< 0?
啊哈THX相反,我得到了“更大”的解释错了:-) – echox 2010-05-04 11:34:01