作者violet90079 (ˊ__>ˋ)
看板java
标题Re: [问题] OCJP SE6题目 - enum
时间Mon Feb 20 00:19:26 2017
※ 引述《uopsdod (pcman)》之铭言:
: Given:
: enum Exaplme {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.utilHash.Map; instead, the
: programmer must use a java.util.EnumMap.
: d. The Example values can be used in a java.tuil.SortedSet, but the set will
: NOT be sorted because enumerated types do NOT implement java.lang.Comparable
: ------------------
: The answer: A
: 想请问B,C,D是哪部分错了, 这题不会得太多,实在没有办法做判断。
: A我倒是较能理解,因为ONE其实会是一个继承Enum的类别,所以ONE==ONE物件记忆体位置
: 相同; ONE.equals(ONE), 我只知道System.out.println(Example.ONE); 会得到字串
: ONE, 所以知道会对。
: 跟大家请教一下了,谢谢
看一下父类别的原始码其实不难理解
http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/lang/Enum.java
Enum 除实作 java.lang.Comparable<E> 外,
还将 equals() 及 hashCode() 都宣告为 final
enum 不是基本型态,因此是没办法使用 "<" 运算元的
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.171.55.161
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/java/M.1487521168.A.626.html
1F:推 uopsdod: 感谢。 本来以为enum会重在内部自己新定义 < 运算元。 02/20 21:01
2F:→ ssccg: java没有operator overloading,唯一较特别的只有string + 02/21 07:15
3F:→ uopsdod: 感谢大家 了解了! 02/21 23:49
4F:→ adrianshum: 唯「二」比较特别的是String 的 + 和+= :P 02/23 09:38