【问题标题】:How do I use the Eclipse External null Annotations (EEAs) for the JDK/JRE and 3rd-party libraries inside Eclipse?如何为 Eclipse 中的 JDK/JRE 和第 3 方库使用 Eclipse 外部空注释 (EEA)?
【发布时间】:2020-10-15 03:19:47
【问题描述】:

我有一个项目,我在其中使用 org.eclipse.jdt.annotation@NonNull@Nullable@NonNullByDefault 支持的 Eclipse 空值检查。正如在许多地方所指出的,如果没有全面的第 3 方支持,注释和检查器的实用性就会降低——尤其是在 JDK/JRE 中。通过使用 Eclipse 外部空注释 (EEA) 可以促进这种支持。

我找到了指向 Eclipse help pages 和托管 EEA 集合的 lastnpe github 存储库的链接。不幸的是,帮助页面被设计为通用的,并且 github 存储库实际上只提供了 maven 和 maven-tycho 集成的说明。此处的相关问题通常针对具体问题,而不是首先连接 EEA 的基本任务。

我的问题:如何在 Eclipse 中使用 lastnpe github 存储库?具体来说,给定一个 JRE,我如何将 EEA 连接到 JRE?同样,给定一个第三方库,我如何将 EEA 连接到该库?

【问题讨论】:

    标签: java eclipse


    【解决方案1】:

    在调查后回答我自己的问题。

    首先,克隆 lastnpe github 存储库。假设你把它放在/repos/eeas。这将是 JRE/JDK 和第 3 方库的注释来源。

    用于 JRE/JDK 的 EEA

    您可以在每个项目的基础上或在您的 Eclipse 首选项中全局设置这些。 Eclipse help pages 介绍了这样做的机制;我将重点介绍您应该使用的 lastnpe 存储库中的路径。简而言之,在您的首选项中,转到 Java > Installed JREs。然后,选择所需的 JRE 并单击编辑。

    如果您使用 Java 8,您可能会发现您的 JRE 有很多 JAR。您可以通过单击外部注释...来突出显示所有这些并同时为所有 JAR 设置相同的外部注释...

    这会打开一个对话框。然后选择“外部位置”并单击“外部文件夹...”以浏览或输入以下路径:

    /repos/eeas/libraries/java
    

    然后单击“确定”并将您的更改应用到首选项。

    您现在应该会发现 JRE 中的某些方法已被注释。例如,给定代码:

    "foo".split("bar");
    

    如果您将鼠标悬停在split 上,您将看到split 返回一个@NonNull String @NonNull []

    这将让您快速评估您是否为 JRE 正确添加了 EEA。请注意,并非 JRE 中的所有内容都带有注释,因此您可能会认为您没有连接注释,而实际上您只是使用未注释的方法。

    第三方库的 EEA

    第 3 方库的流程类似。例如,如果您使用 guava,您可以右键单击您的项目,选择 Configure Build Path,转到 Libraries 选项卡,展开 guava JAR,选择 External annotations,然后单击 Edit...

    如上,你需要在repo中给出guava文件夹的路径,像这样:

    /repos/eeas/libraries/guava
    

    您可以通过调用Maps.newHashMap() 并将鼠标悬停在newHashMap 上来验证这是否有效。你会看到它返回一个@NonNull HashMap。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-22
    • 2011-10-16
    • 2015-08-10
    • 2012-08-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多