오류가 발생하기 쉽고 많은 상용구가 필요한 NullPointerExceptions을 피하기 위해 일부 데이터 계층에서 값을 가져올 때 null 검사를하는 경우가 많습니다.
객체를 가져올 때 null 검사를 건너 뛸 수있는 매우 간단한 루틴을 작성했습니다 ...
public final class NoNPE {
public static <T> T get(NoNPEInterface<T> in) {
try {
return in.get();
} catch (NullPointerException e) {
return null;
}
}
public interface NoNPEInterface<T> {
T get();
}
}
나는 이것을 조금 사용합니다 ...
Room room = NoNPE.get(() -> country.getTown().getHouses().get(0).getLivingRoom());
위의 결과로 모든 부모 수준을 null로 확인하지 않고도 Room 객체 또는 null을 얻을 수 있습니다.
위의 생각은 무엇입니까? 문제가있는 패턴을 만들고 있습니까? 귀하의 의견으로는 더 좋은 방법이 있습니까?
Option
(또는 Maybe
) 모나드 :
java.util.Optional
누락 된 데이터를 나타내는 데 null 대신 사용하도록 응용 프로그램을 다시 디자인하는 것이 좋습니다 . 이것은 체인의 끝에서 실패 조건을 반환하지 않고 기본 데이터를 계속 수행하려는 경우와 설명하는 경우 모두에 유용한 유틸리티를 제공합니다.