如何添加包级别注释或编辑 package-info.java?

Posted

技术标签:

【中文标题】如何添加包级别注释或编辑 package-info.java?【英文标题】:How do I add package level annotations or edit package-info.java? 【发布时间】:2012-01-14 09:00:21 【问题描述】:

我正在尝试添加包级别的注释,但我不知道如何去做。示例表示赞赏。

【问题讨论】:

【参考方案1】:

在日食中

由于 package-info.java 不是类的有效标识符,因此无法在 Eclipse 中将其创建为类。

我发现当你创建一个新包时,有一个复选框来检查你是否需要一个 package-info.java。

在现有包中创建 package-info.java 文件:

    右键单击需要 package-info.java 的包。 选择新建->包。 选中创建 package-info.java 复选框。 点击完成。

【讨论】:

这在我的 Eclipse 版本 (3.7.2) 中不起作用 - 此解决方案需要哪个版本? 我有 Juno,版本 4.2.0。 要将这样的文件添加到现有包中,我在项目资源管理器中右键单击该包 → 新建 → 其他 → 文件并手动将其命名为 package-info.java。不过,我总是忘记确切地调用文件以及添加哪些注释,所以我很想阅读一种更优雅的方式。【参考方案2】:

摘自文章here

在 package-info.java 中:

@PackageLevelAnnotation
package blammy; // package with a package level annotation.


import blammy.annotation.PackageLevelAnnotation;

在 PackageLevelAnnotation.java 中

package blammy.annotation;

@Retention(RetentionPolicy.CLASS)
@Target(ElementType.PACKAGE)
public @interface PackageLevelAnnotation

  // stuff as required.

编辑:更多包级别信息。 这是 Java 语言规范中包章节的链接:packages

【讨论】:

package-info.java 在哪里?它是提供的还是某处提供的,还是我必须创建它?如果是这样,我需要在哪里创建这个文件。谢谢。 在我上面的例子中,文件 package-info.java 应该在 blammy 包中(即 blammy 源目录)。 是的,每个包裹一个。在另一个信息链接的答案中查看编辑 @DwB - 我在这里有一个相关的问题:***.com/q/34980398/1735836 用什么代替 // stuff as required. ?我需要一个关于傻瓜的解释。 对于复制和粘贴,如果您希望在编译之外可见,请将 @Retention 更改为 RetentionPolicy.RUNTIME【参考方案3】:

package-info.java

package-info.java 是一个 Java 文件,可以添加到任何 Java 源包中。它的目的是为包级文档和包级注释提供一个主页。

只需创建package-info.java 文件。在文件中添加包声明。事实上,package-info.java 文件中唯一必须包含的就是包声明。

最小包信息文件示例:

package com.example.myapp.backend.data;

包级注释示例,@ParametersAreNonnullByDefault

@ParametersAreNonnullByDefault
package com.example.myapp.backend.data;

import javax.annotation.ParametersAreNonnullByDefault;

有关详细信息,请参阅The Java® Language Specification, section 7.4.1 Named Packages 中的Java specifications。

【讨论】:

【参考方案4】:

打开资源管理器,转到 src/你的包文件夹。 右键单击-> 创建新文本文件:将其命名为 package-info.java。

返回 eclipse 并编辑并添加所需的内容。

【讨论】:

以上是关于如何添加包级别注释或编辑 package-info.java?的主要内容,如果未能解决你的问题,请参考以下文章

JavaEE中package-info如何解除

为啥 Hibernate 会忽略 package-info.java?

需要从绑定文件中生成 package-info.java 中的 JAXB 注释

@CompileStatic整个包?

Eclipse 新建包的时候它会给我自动生成一个package-Info.java文件

如何让 @ParametersAreNonnullByDefault 工作?