Java学习系列:package-info.java的作用
source link: https://blog.51cto.com/fengyege/5913055
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Java学习系列:package-info.java的作用
精选 原创学习spring-kafka
开源源码的时候,发现每个目录都有一个package-info.java
文件,查找其用法,并整理出来。
spring-boot | 2.1.8.RELEASE |
spring-kafka | 2.2.8.RELEASE |
intellij idea | 2019.1 |
package-info.java
是一个Java
文件,可以放到任意Java
源码包执行。不过里面的内容有特定的要求,其主要目的是为了提供包级别相关的操作,比如包级别的注解、注释及公共变量。
一、提供包级别的注解
在对应的源码包提供包级别的注解
- 创建包注解
@Retention(RetentionPolicy.RUNTIME)
public @interface TestPkg {
}
- 在
package-info.java
添加注解
package com.exercise.data_collection_error_info_transformation.component;
- 查看对应的包的注解
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");
}
}
}
}
结果如下,只输出对应的包的注解,包内部的类是没有该注解的。
- 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 static void main(String[] args) throws ClassNotFoundException {
System.out.println(PACKAGE_CONST.TEST_01);
}
}
截图如下:
- 在包外的任意类调用包常量,提示报错:
public static void main(String[] args) throws ClassNotFoundException {
System.out.println(PACKAGE_CONST.TEST_01);
}
}
截图如下:
三、提供包级别的注释
使用JavaDoc
的时候,通过在package-info.java
添加注释,生成JavaDoc
实现对应包的注释说明。
1、添加对应的包的注释
* 描述: 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;
2、生成对应的JavaDoc
文档,截图如下:
3、点击component
的链接,截图如下:
在学习开源源码的时候,看到package-info.java
,不知道为什么,特意去找资料学习,并进行总结。当我们在学习开源源码的时候,可以学习到很多东西,也在不断地补充自己的知识盲区。不过,也要自己多记笔记,多问自己为什么,做到“知其所以然”,稳扎稳打。
求赞、关注
如果我的文章对大家产生了帮忙,可以在文章底部点个赞或者收藏;
如果有好的讨论,可以留言;
如果想继续查看我以后的文章,可以点击关注
也可以扫描以下二维码,关注我的公众号:枫夜之求索阁,查看我最新的分享!
- 赞
- 收藏
- 评论
- 分享
- 举报
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK