앞선 포스팅에서 equals()메소드를 이용하면 값의 비교가 가능하다고 하였다.
하지만 다음 코드의 결과값은 역시 false이다.
class Value
{
int i;
}
public class EqualMethod{
public static void main(String[] args)
{
Value v1 = new Value();
Value v2 = new Value();
v1.i = v2.i = 100;
System.out.println(v1.equals(v2));
}
}
그 이유는 Default equals method 는 객체의 레퍼런스를 비교하기 때문에 false가 되는 것이다.
그러므로 Default equals method가 아닌 따로 equals() 메소드를 오버라이드 시켜 줘야 한다. 예를 들면 이렇게.
boolean equals(Value obj)
{
if(obj.i == i)
return true;
return false;
}
'디폴트'에 해당되는 글 1건
- 2007.11.02 equals()메소드 2
Study - Programming/JAVA2007. 11. 2. 02:09