12 sie 2010

equal i hashCode

1. int hashcode() - jaki bukiet ?
2. boolean equals(Object ob)
3. sprawdzaj na początku instanceof!
4. nie używaj transient zmiennych w hashCode()

@Test
public void test1() {

NotEqualOverriding a = new NotEqualOverriding();
NotEqualOverriding b = new NotEqualOverriding();

a.equals(b); //wersja 1 z return false;
a.equals((Object)b); //wersja 2


}

class NotEqualOverriding{

/*Tylko overloading*/
boolean equals(NotEqualOverriding er){
return false;
}
/** -> zonk to jest overloading! */
// @Override

public boolean equals(Object obj) {
// dodaj na poczatku test is-A!!
System.out.println(" nadpisny equal");
return super.equals(obj);
}

@Override
public int hashCode() {
int hash = 7;
return hash;
}
}