【问题标题】:org.jetbrains.annotations.NotNull instead of javax.annotation.Nonnull when implement method in Intellij IDEA在 Intellij IDEA 中实现方法时 org.jetbrains.annotations.NotNull 而不是 javax.annotation.Nonnull
【发布时间】:2021-02-02 09:16:22
【问题描述】:

在最近的 JetBrains Intellij IDEA 更新后,我发现当我尝试实现使用 javax.annotation.Nonnull 注释的方法时 - IDE 使用 org.jetbrains.annotations.NotNull 来实现它。

例子:

如果你有接口:

import javax.annotation.Nonnull;

interface User {

    @Nonnull
    String getName();
}

它将被实现为:

import org.jetbrains.annotations.NotNull;

class Customer implements User {

    @NotNull
    @Override
    public String getName() {
        return null;
    } 
}

问题是如何配置IDE来实现带有严格验证注解的方法?

【问题讨论】:

    标签: intellij-idea jetbrains-ide java-annotations


    【解决方案1】:

    看起来像一个缺陷 (https://youtrack.jetbrains.com/issue/IDEA-253324) 尽管存在解决方法: Inspections > Java > Probable bugs > Nullability problems > @NotNull/@Nullable problems > Configure Annotations。将 javax.annotation.Nullable/javax.annotation.Nonnull 设置为默认值并重新启动 IDE。

    【讨论】:

    • 我的问题是当我尝试通过命令行使用 gradle 运行时。不是与 IDE。所以这似乎对我没有影响。
    【解决方案2】:

    要将带有注释的库添加到 Gradle 项目,请将实现 'org.jetbrains:annotations:16.0.2' 依赖项添加到 build.gradle 文件中。

    【讨论】:

      猜你喜欢
      • 2015-05-13
      • 1970-01-01
      • 2016-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-26
      • 1970-01-01
      • 2017-07-28
      相关资源
      最近更新 更多