IはAirport.javaデフォルトのObject.toString()がhashCode()を追加していませんか?
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
[email protected]
あるがいけません出力は
PHX
PHX
PHX
[email protected]
[email protected]
オブジェクトのAPI
https://docs.oracle.com/javase/7/docs/api/java/lang/Object.htmlデフォルト
Object.toString()
よると10は
確かtoString()
のデフォルトの実装ですgetClass().getName() + '@' + Integer.toHexString(hashCode())
'enum'型は暗黙のうちに' Enum'クラスを拡張して最終的なものです。 –
行1,2、および4はいずれにしても同じであることに注意してください。だから、あなたが4でハッシュコードを期待したならば、1と2にハッシュコードが存在するはずです。 –