概述
文章目录
- 场景
- 环境
- 正文
- 介绍
- 用途
- 一、提供包级别的注解
- 介绍
- 样例
- 二、提供包级别的变量
- 介绍
- 样例
- 三、提供包级别的注释
- 介绍
- 样例
- 总结
- 随缘求赞
场景
学习spring-kafka
开源源码的时候,发现每个目录都有一个package-info.java
文件,查找其用法,并整理出来。
环境
软件 | 版本 |
---|---|
spring-boot | 2.1.8.RELEASE |
spring-kafka | 2.2.8.RELEASE |
JDK | 8 |
intellij idea | 2019.1 |
正文
介绍
package-info.java
是一个Java
文件,可以放到任意Java
源码包执行。不过里面的内容有特定的要求,其主要目的是为了提供包级别相关的操作,比如包级别的注解、注释及公共变量。
用途
一、提供包级别的注解
介绍
在对应的源码包提供包级别的注解
样例
-
创建包注解
@Target(ElementType.PACKAGE) @Retention(RetentionPolicy.RUNTIME) public @interface TestPkg { }
-
在
package-info.java
添加注解@TestPkg package com.exercise.data_collection_error_info_transformation.component;
-
查看对应的包的注解
public class Client { public static void main(String[] args) throws ClassNotFoundException { // 查看包注解 String pkgName = "com.exercise.data_collection_error_info_transformation.component"; Package pkg = Package.getPackage(pkgName); Annotation[] annotations = pkg.getAnnotations(); for(Annotation an:annotations){ if(an instanceof TestPkg){ System.out.println("Hi,I'm the TestPkg"); } } // 查看包下面对应的类的注解 Class test = Class.forName("com.exercise.data_collection_error_info_transformation.component.Test"); Annotation[] annotations2 = test.getAnnotations(); for(Annotation an:annotations2){ if(an instanceof TestPkg){ System.out.println("Hi,I'm the Class TestPkg"); } } } }
结果如下,只输出对应的包的注解,包内部的类是没有该注解的。
Hi,I'm the TestPkg
-
Deprecated注解的使用
如果一整个包都是过时的话,可以直接在package-info.java
下面,添加注解@Deprecated
,表示该源码包已过时。如图:
二、提供包级别的变量
介绍
如果想在包里面使用对应的变量,而不想让其他包使用,就可以将变量放到package-info.java
下面,实现分包自用
的理念。
样例
-
在
package-info.java
添加以下内容:/** * 包类 */ class PACKAGE_CLASS{ public void test(){ } } /** * 包常量 */ class PACKAGE_CONST{ public static final String TEST_01="TEST"; }
-
在包内的任意类调用包常量,未报错:
public class Client { public static void main(String[] args) throws ClassNotFoundException { System.out.println(PACKAGE_CONST.TEST_01); } }
截图如下:
-
在包外的任意类调用包常量,提示报错:
public class Client { public static void main(String[] args) throws ClassNotFoundException { System.out.println(PACKAGE_CONST.TEST_01); } }
截图如下:
三、提供包级别的注释
介绍
使用JavaDoc
的时候,通过在package-info.java
添加注释,生成JavaDoc
实现对应包的注释说明。
样例
-
添加对应的包的注释
/** * 描述: Spring组件<br> * 项目名称: data_collection_error_info_transformation <br> * 创建时间: 2020/5/6 12:59 <br> * 公司信息: 凯通科技股份有限公司 产品研发中心-大数据产品<br> * * @version v1.0 */ @TestPkg @Deprecated package com.exercise.data_collection_error_info_transformation.component;
-
生成对应的
JavaDoc
文档,截图如下:
点击component
的链接,截图如下:
总结
在学习开源源码的时候,看到package-info.java
,不知道为什么,特意去找资料学习,并进行总结。当我们在学习开源源码的时候,可以学习到很多东西,也在不断地补充自己的知识盲区。不过,也要自己多记笔记,多问自己为什么,做到“知其所以然”,稳扎稳打。
随缘求赞
如果我的文章对大家产生了帮忙,可以在文章底部点个赞或者收藏;
如果有好的讨论,可以留言;
如果想继续查看我以后的文章,可以左上角点击关注
最后
以上就是苗条美女为你收集整理的Java学习系列:package-info.java的作用场景环境正文总结随缘求赞的全部内容,希望文章能够帮你解决Java学习系列:package-info.java的作用场景环境正文总结随缘求赞所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复