shokosブログ

プログラミング

equalsやhashCodeの話追記

きのう書いたequalsの実装だと、下記の実行結果がfalseになってしまいました

    	Bean b1 = new Bean(1L, "a");
    	Bean b2 = new Bean(2L, new String("a"));
    	System.out.println(b1.equals(b2));

なのでリファクタリング

	@Override
	public boolean equals(Object obj) {
		if(obj == null || !(obj instanceof Bean)) {
			return false;
		}
		Bean bean = (Bean)obj;
		return name.equals(bean.name);
	}

アドバイスしてくれたskrbさんありがとうございました!