Java 空分析无法理解代码

Java 空分析无法理解代码,java,eclipse,intellij-idea,nullpointerexception,code-analysis,Java,Eclipse,Intellij Idea,Nullpointerexception,Code Analysis,我目前在Eclipse和IntelliJ上都遇到了空分析问题,他们不理解处理空指针异常的代码。基本上我得到的方法如下: @Nullable public static <T> T getValueOrNull(Supplier<T> resolver) { try { T result = resolver.get(); return Optional.ofNullable(result).orElse(null); } c

我目前在Eclipse和IntelliJ上都遇到了空分析问题,他们不理解处理空指针异常的代码。基本上我得到的方法如下:

@Nullable
public static <T> T getValueOrNull(Supplier<T> resolver) {
    try {
        T result = resolver.get();
        return Optional.ofNullable(result).orElse(null);
    } catch (NullPointerException e) { 
        return null;
    }
}

您在哪里调用
getValueOrNull
?这可能就是问题发生的地方。如果您使用的自定义供应商界面
抛出NullPointerException
,该怎么办?旁注:
可选。ofNullable(result)。orElse(null)
似乎完全不需要。@shmosel是的,上面的一个将不需要。即使使用自定义异常,分析器似乎也没有意识到正在捕获null异常。这可能只是因为它不受支持,因为这通常是一种反模式。
Optional.ofNullable(objectA)
.map(a -> a.getObjectB())
.map(b -> b.getObjectC())
.map(c -> c.getObjectD())
.map(d -> d.getObjectE())
.map(e -> e.getName())
.orElse("");