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 |