Optional.orElse(null)被标记为org.jetbrains.annotations.NotNull。

6

如何使用org.jetbrains.annotations.NotNull标记的Optional.orElse(null)

orElse的javadoc明确说明允许null

     * @param other the value to be returned, if no value is present.
     *        May be {@code null}.

但是我的代码在SonarQube中标记了一个“bug”。
        return users.findById(userID)
            .flatMap(user -> students.findByUser(user))
            .map(GetAllStudentsSvc::mapToStudent)
            .orElse(null);

从代码上看,它似乎没有被标记。从IDE上看,它也没有被标记。

enter image description here

即使将代码注释为@Nullable也无济于事。

enter image description here


方法findById、findByUser和mapToStudent返回什么? - genius42
可选的。我会更新标题。 - Archimedes Trajano
我想知道是否有任何JDK类(例如java.util.Optional)使用了JetBrains的注释。 - dpr
你正在使用一个名为SonarLint的代码检查工具,这可能与他们的代码检查规则有关。 - Deadbeef
1
这是针对SonarQube的内容,而SonarLint也是做同样的事情。我将其标记为Sonarqube。 - Archimedes Trajano
显示剩余3条评论
1个回答

2
我认为很明显在这里使用null是完全可以的,所以我建议抑制它。这对我有效:

@SuppressWarnings("squid:S2637")


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接