Java中的package-info.java作用

前言

之前在Eclipse中,总是会不小心勾选到这个复选框,之前并没有怎么在意这个java文件,毕竟生成之后只有以下这么点内容。


而且你也不能直接创建package-info文件,因为编辑器会报 Type name is not valid 错误,类名无效。我也尝试在上述生成的 package-info.java 文件中定义一个class,由于Java变量定义的规范是由字母、数字、下划线和 $ 符号组成且首字母不为数字,不允许有 - , 所以这个显然是行不通的。

所以我就很纳闷,这东西到底有什么作用?

作用

查看了一些资料,总结下,大概的情况就是 package-info.java 文件为包级文档和包级别注释提供一个地方。而且该文件唯一必须包含的是包的声明。例如上述创建的 package-info.java 文件中的 package com.bigsea.test,与此同时,这个 package-info.java 也必须位于 com.bigsea.test 包中。

包文档

软件包的描述和其他相关文档可以写在 package-info.java 文件中,并用于生成 Javadocs (关于如何生成 Javadocs 请自行谷歌或者百度,这里不做介绍)。
我这里做个示例。

包注释

package-info.java 文件包含包级别的注释。如以下图示。

我这里也同样的举个例子。
以我的工具包作为示例。比如你想弃用一个包中的所有类型。你可以通过使用 @Deprecated 注解每个单独的类型,或者,你可以在 package-info.java 中的 package 声明上使用 @Deprecated


com.bigsea.test 中新建一个 Test 类测试下。看到如下的结果。

也就是说,你在 package-info.java 中的 package 声明上使用 @Deprecated,这样一来相当于贬低了对应包中的所有对应的类、接口、枚举等。


版权声明:本文为m0_67400972原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。