Programing/Java

Java Object 비교 ==

BUST 2018. 7. 25. 23:32

Long, Integer, String 등과 같은 Object를 비교를 할때에는 아래와 같은 방식으로 하면 원하는 작동이 나오지 않는다.


Long a = 1L;

Long b = 1L;


if( a == b )

   System.out.println("a==b")

  • 객체에서의 ==은 referecne비교, 따라서 a, b는 서로 다른 reference를 가지고 있기 때문에 false로 나온다.

Long a = 1L;

Long b = 1L;


if( a.equals(b) )

   System.out.println("a==b")

  • equals 를 사용하여 object를 같은지 유무를 비교를 한다.
  • a가 null 인경우에는 null 포인트 에러가 발생이 되기 때문에 방어 코드가 필요하다.
  • String 인 경우에는 StringUtils의 isEquals 매서드를 사용하면 null 방어코드도 포함되어 있다.


'Programing > Java' 카테고리의 다른 글

Adapter Pattern  (0) 2018.08.01
Apache HttpClient Example  (0) 2018.07.29
Spring RestTemplate  (0) 2018.07.22
Spock Framework을 이용한 Unit test 작성  (0) 2018.06.25
Java Stream을 이용한 Inner Join / Left Join 기능  (0) 2018.06.18