Objects.isNull 대 Optional.ofNullable [중복]
Oct 21 2020
이 코드를 테스트에 사용했습니다.
if (Objects.isNull(o)) {
return null;
}
return String.valueOf(o);
이 코드 조각을
Optional.ofNullable(String.valueOf(o)).orElse(null);
내 테스트에서이 주장 오류가 있습니다.
Expecting: <"null">
to be equal to: <null>
but was not.
답변
2 ernest_k Oct 21 2020 at 17:12
Optional.ofNullable(String.valueOf(o))String을 반환 o == null하기 때문에 빈 선택 사항이 아닙니다 .String.valueOf(null)"null"
선택 사항의 올바른 사용은 다음과 같습니다.
Optional.ofNullable(o).map(String::valueOf).orElse(null);
ofNullable(null)빈 옵션을 만드는 곳 은 orElse(null)결국 호출됩니다.
1 ShekharKhairnar Oct 21 2020 at 17:11
String.valueOf ()는 null이 아닌 경우 객체의 toStirng ()를 반환하거나 "null"문자열을 반환합니다.
String 클래스에서 바로 :
public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}
그것은 당신의 주장에서 당신이 "null"을 테스트하고 있다는 것을 의미합니다.