누구나 Java가 왜 NullPointerException
을 던지나요? Float
을 반환 getSomeFloat
이상한 NullPointerException이 삼원 조건식
Float x = <some condition> ? myObject.getSomeFloat() : 0.0f;
- 방법.
0.0f
에서new Float(0)
으로 변경하면 문제가 없습니다.
누구나 Java가 왜 NullPointerException
을 던지나요? Float
을 반환 getSomeFloat
이상한 NullPointerException이 삼원 조건식
Float x = <some condition> ? myObject.getSomeFloat() : 0.0f;
0.0f
에서 new Float(0)
으로 변경하면 문제가 없습니다.이 삼항 연산자의 유형은 float
입니다. 따라서 myObject.getSomeFloat()
이 null을 반환하는 경우 <some condition>
이 true이고 이 호출되면 Float
을 float
으로 변환하면 NullPointerException
이 발생합니다.
번째 및 세 번째 피연산자 중 하나는 원시 타입 T이며, 다른 하나의 유형은 T 박싱 변환 (§5.1.7)을 적용한 결과이면을 조건부 식의 유형은 T입니다.
귀하의 경우에는 기본 유형이 float이고 그 박스형 버전은 Float입니다. 따라서 조건식의 유형은 프리미티브 유형 - float입니다.
myobject가 null입니까? 또는 <일부 조건>의 일부 객체가 null 일 수 있습니다. – SMA