null 포인터 예외를 피하기 위해 Optional 클래스를 사용하는 것이 더 좋지만, 어쨌든 null 체크와 마찬가지로 예외가 발생하지 않도록하려면 optional.isPresent()
체크를 적용해야합니다.Guava의 Optional 클래스는 NPE에 어떤 도움이됩니까?
optional.or()
을 사용하여 일부 기본값 또는 빈 개체로 대부분의 시간을 재정의하지 않으면 매우 유용하다는 것을 알 수 없습니다.
보고 싶지 않은 다른 이점이 있습니까? 그렇지 않으면 추가 오버 헤드가 발생하지 않고 쉽게 피할 수 있습니다.
메서드에서 옵션을 반환하면 클라이언트가 강제로 명시 적으로 검사하도록합니다. – slnowak
하지만 여전히 확인하지 않고 optional.get()을 호출 할 수 있으며 NullPointerException 대신 IllegalStateException을 발생시킵니다! – krmanish007
하지만'get'을 호출해야한다는 사실은'isPresent'를 체크해야한다는 것을 상기시켜줍니다. 'Optional'이 없으면, 모든 것이 올바르지 않을 때 코드화하는 것이 더 낫습니다. –