[问题] 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