Java中的package-info.java作用

前言

  之前在Eclipse中,总是会不小心勾选到这个复选框,之前并没有怎么在意这个java文件,毕竟生成之后只有以下这么点内容。
  Java中的package-info.java作用_第1张图片
  Java中的package-info.java作用_第2张图片
  而且你也不能直接创建package-info文件,因为编辑器会报 Type name is not valid 错误,类名无效。我也尝试在上述生成的 package-info.java 文件中定义一个class,由于Java变量定义的规范是由字母、数字、下划线和 $ 符号组成且首字母不为数字,不允许有 - , 所以这个显然是行不通的。
  Java中的package-info.java作用_第3张图片
  所以我就很纳闷,这东西到底有什么作用?

作用

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

包文档

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

包注释

  package-info.java 文件包含包级别的注释。如以下图示。
  Java中的package-info.java作用_第6张图片
  我这里也同样的举个例子。
  以我的工具包作为示例。比如你想弃用一个包中的所有类型。你可以通过使用 @Deprecated 注解每个单独的类型,或者,你可以在 package-info.java 中的 package 声明上使用 @Deprecated
  Java中的package-info.java作用_第7张图片
  Java中的package-info.java作用_第8张图片
  在 com.bigsea.test 中新建一个 Test 类测试下。看到如下的结果。
  Java中的package-info.java作用_第9张图片
  也就是说,你在 package-info.java 中的 package 声明上使用 @Deprecated,这样一来相当于贬低了对应包中的所有对应的类、接口、枚举等。

你可能感兴趣的:(Java)