public class Equals { public static final void main(String[] args) { final String aaa0 = "aaa"; final String aaa1 = "aaa"; System.out.println("aaa0 == aaa1 : " + (aaa0 == aaa1));// -> true final String aaa2 = new String("aaa"); final String aaa3 = new String("aaa"); System.out.println("aaa2 == aaa3 : " + (aaa2 == aaa3));// -> false System.out.println("aaa2 equals aaa3 : " + (aaa2.equals(aaa3)));// -> true final Integer one0 = 1; final Integer one1 = 1; System.out.println("one0 == one1 : " + (one0 == one1));// -> true final Integer one2 = new Integer(1); final Integer one3 = new Integer(1); System.out.println("one2 == one3 : " + (one2 == one3));// -> false System.out.println("one2 equals one3 : " + (one2.equals(one3)));// -> true final Hoge hoge0 = new Hoge(0); final Hoge hoge1 = new Hoge(0); System.out.println("hoge0 == hoge1 : " + (hoge0 == hoge1));// -> false System.out.println("hoge0 equals hoge1 : " + (hoge0.equals(hoge1)));// -> true } } class Hoge { private int i; public Hoge(int i) { this.i = i; } public int getI() { return i; } @Override public boolean equals(Object obj) { return obj instanceof Hoge ? ((Hoge) obj).getI() == i : false; } @Override public int hashCode() { return i; } }
see also: Javaプログラマであるかを見分ける10の質問 「==演算子とequalsメソッドの違いは何か?」
0 件のコメント:
コメントを投稿