1. 程式人生 > >基本資料型別和String等對equals重寫了,其他的equals未重寫的例子

基本資料型別和String等對equals重寫了,其他的equals未重寫的例子

package test;

public class Test1 {

	public static void main(String[] arg0) {

		Value v1 = new Value();
		Value v2 = new Value();
		v1.i = v2.i = 100;
		System.out.println(v1.equals(v2));//false
	}
}

class Value {
	int i;
}
因為除了基本資料型別和String等對equals重寫了,其他的equals未重寫,與==一樣比較地址和內容,除非Value也重寫equals。
class Value {
	int i;

	@Override
	public boolean equals(Object obj) {
		if (obj instanceof Value) {
			return i == ((Value) obj).getI();
		}
		return false;
	}

	public int getI() {
		return i;
	}

	public void setI(int i) {
		this.i = i;
	}
}