我在Airport.java有一个Enum类
package test;
public enum Airport {
PHX,
LAX,
SFO,
NRT,
SIN;
Airport() {
}
}
和Test.java中的Test类
package test;
public class Test {
public static void main(String[] args) {
Airport a = Airport.PHX;
System.out.println(a);
System.out.println(String.valueOf(a));
System.out.println(a.name());
System.out.println(a.toString());
System.out.println(a.name() + '@' + Integer.toHexString(a.hashCode()));
}
}
此输出为
PHX
PHX
PHX
PHX
PHX@15db9742
但不应该输出
PHX
PHX
PHX
PHX@15db9742
PHX@15db9742
根据对象API WireShark Capture,默认Object.toString()
为getClass().getName() + '@' + Integer.toHexString(hashCode())
答案 0 :(得分:5)
这确实是toString()
的默认实现。但是,java.lang.Enum
,所有enum
的隐式基类通过返回其名称来覆盖toString()
。