null을 int로 반환
Java에서 temp() 메서드는 int에 대해 null을 반환하더라도 컴파일러 오류를 발생시키지 않습니다. same()은 if 문으로 표현될 때 수행됩니다. 이러한 불일치는 null 반환 값에 대한 컴파일러의 해석으로 인해 발생합니다.
삼항 연산자
삼항 연산자의 경우 컴파일러는 null을 정수에 대한 null 참조로 처리합니다. 오토박싱/언박싱 규칙(Java 언어 사양 15.25)을 따릅니다. 결과적으로 int가 Integer로 박싱되어 다시 변환되어 null 반환 값이 허용됩니다. 그러나 이렇게 하면 런타임에 NullPointerException이 생성됩니다.
if 문
if 문을 사용할 때 컴파일러는 null과 int 사이에 호환되지 않는 유형을 적용합니다. 이는 int 반환 값을 기대하며 autoboxing/unboxing 변환을 허용하는 삼항 연산자와 달리 null 할당을 허용하지 않습니다.
위 내용은 If 문에서는 `same()`이 발생하는 반면 `temp()` 메서드에서 Null을 반환하면 Java에서는 컴파일러 오류가 발생하지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!