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