Integer 는 객체.. 값을 비교할려면 == 가 아닌 equals 를 써야 한다.
package test2.object;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import lombok.extern.slf4j.Slf4j;
@Slf4j
@SpringBootTest
public class IntegerEquals {
@Test
public void test() {
Integer i1 = 127;
Integer i2 = 127;
log.debug(" i1 == i2 = {}, i1.equals(i2) = {}", i1==i2, i1.equals(i2));
// i1 == i2 = true, i1.equals(i2) = true
Integer i3 = 128;
Integer i4 = 128;
log.debug(" i3 == i4 = {}, i3.equals(i4) = {}", i3==i4, i3.equals(i4));
// i3 == i4 = false, i3.equals(i4) = true
Integer i5 = 128;
int i6 = 128;
log.debug(" i5 == i6 = {}, i5.equals(i6) = {}", i5==i6, i5.equals(i6));
// i5 == i6 = true, i5.equals(i6) = true
}
}
테스트에서 보는 봐와 같이
127까지는 Integer 도 == 로 비교 시 제대로 비교된다. 하지만 128부터는 equals 를 해야 한다.
int 와 Integer 를 비교하는 경우에는 == 비교 시 묵시적 형변환으로 제대로 비교되는걸 알수 있다.
'Java' 카테고리의 다른 글
자바, 스프링, 스프링 부트에서 동영상 스트리밍 서비스 (1) | 2021.06.25 |
---|---|
자바 파일 다운로드 (0) | 2021.06.25 |
java MultipartFile IE 파일 업로드 시 파일명 전체경로로 나오는 경우 (0) | 2021.06.11 |
com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException - ObjectMapper 사용시 매핑 에러 (0) | 2021.06.09 |
json 형식의 string을 자바 객체(DTO)로 맵핑하기.. (0) | 2021.05.25 |