[問題] OCJP SE6題目 - enum

作者: uopsdod (pcman)   2017-02-19 19:02:03
Given:
enum Example {ONE, TWO, THREE}
Which statement is true?
A. The expressions (ONE == ONE) and ONE.equals(ONE) are both guaranteed to be
true.
B. The expression (ONE < TWO) is guaranteed to be true and ONE.compareTo(TWO)
is guaranteed to be less than one.
C. The Example values cannot be used in a raw java.util.HashMap; instead, the
programmer must use a java.util.EnumMap.
d. The Example values can be used in a java.util.SortedSet, but the set will
NOT be sorted because enumerated types do NOT implement java.lang.Comparable
作者: ssccg (23)   2017-02-20 00:28:00
B <不能用、C可以啊、D有Comparable啊enum在java只是syntax sugar,宣告決定name和ordinal大小用ordinal決定,其他部分跟一般物件沒什麼差別你有一點說錯,Example才是繼承Enum,ONE是個static field
作者: uopsdod (pcman)   2017-02-20 21:05:00
恩恩感謝糾正C我等等去查查看為什麼,還真不知道問的比較觀念是什麼所以Enum其實也能給HashMap用,只是更適合給EnumMap!感謝 了解了
作者: adrianshum (Alien)   2017-02-23 09:36:00
你後面的解釋差不多全錯
作者: uopsdod (pcman)   2017-02-25 06:38:00
求指教 感謝感謝
作者: adrianshum (Alien)   2017-03-01 19:11:00
ONE 不是一個類別,所以ONE==ONE 相等的原因不對equals 的原因也與「字串ONE」一點關係也沒有。單純是因為Enum 的equals 是單純以== 作比較而已。順帶一提,正常的equals 在==(指向同一instance) 的情況下也該return true,既然上面你知道== 會對,意味equals()也一定對啦

Links booklink

Contact Us: admin [ a t ] ucptt.com