E. Capriolo 등의 Programming Hive의 168 페이지에 "... Java 원시 요소는 객체가 아니므로 null이 될 수 없습니다."라는 내용이 있습니다. 그래서, 간단한 하이브 UDF의 경우 :하이브 UDF, Java Primitives 및 null
public class ConvertToCelcius extends UDF {
public double evaluate(double value) {
return (value - 32)/1.8;
}
}
null 행 값을 만나면 어떻게됩니까?
또한 Java 프리미티브를 사용하여 null이 UDF로 전달되는지 여부를 테스트 할 수 있습니까?
아마도, 우리는 다시 쓸 수 있기 때문에 위 :
이public class ConvertToCelcius extends UDF {
public Double evaluate(Double value) {
if (value == null) {
return null;
}
return (value - 32)/1.8;
}
}
"null 행 값을 만나면 어떻게됩니까? *"=> 컴파일 오류 - 그렇게 할 수 없습니다. 'Double'을 패스하지 않으면 NPE를 얻을 수 있습니다. – assylias
컴파일 오류 또는 런타임 오류? 위의 "double"코드는 정상적으로 컴파일됩니다. – user25029
제 말은 첫 번째 메소드에서'evaluate (null)'을 호출 할 수 없다는 것입니다 : 컴파일 오류. 런타임에'Double d = null'을 전달하면 NullPointerException이 발생합니다. – assylias