두 자리 숫자를 2000 + 숫자로 변환하는 메서드를 작성하려고 시도하고 있으며 다른 모든 숫자를 그대로 반환하며 null이 인수로 전달되면 null을 반환합니다.NullPointerException의 출처는 어디입니까?
이 구현 의도
private Integer convertTo4Digits(Integer modelYear) {
boolean isTwoDigit = modelYear != null && modelYear < 100;
if (isTwoDigit) {
return 2000 + modelYear;
} else {
return modelYear;
}
}
로 작동하지만 NULL로 호출 할 때이 사람은 return 문에서 NPE와 함께 실패합니다.
private Integer convertTo4Digits(Integer modelYear) {
return (modelYear != null && modelYear < 100) ? (2000 + modelYear) : modelYear;
}
또는이 버그입니까? 나는 (정수에 명시 적 캐스트를 참고) JDK와 1.7.0_04
"왜 삼항 연산자가 NullPointerException을 발생 시키는가?"로 질문을 변경해야합니다. –