package-info.java 包的作用
1. 为标注在包上的Annotation提供便利
2. 声明包的私有类和常量
3. 提供包的整体注释说明
代码说明:
package-info.java文件
@PackageAnotation(version="1.0") package com.ltao.package.test class PackageInfo { public void common() { System.out.println("sa"); } } class PackageInfoGeneric<T extends Throwable> { private T obj; public void set(T obj) { this.obj = obj; } public void common() { System.out.println(obj + "sa"); } } interface packageInfoInteger { public void test(); } class PackageConstants { public static final String ERROE_CODE = "100001"; }
上面的package-info文件定义了类,泛型,接口,常量 。这些都是包范围可见的,这种方式可以实现了对包可访问范围类的统一整理
PackageAnotation.java 定义修饰包的注解
@Target(ElementType.PACKAGE) @Retention(RetentionPolicy.RUNTIME) @interface PackageAnotation
{
public String version() default "";
}
package com.lt.package.test; import java.io.IOException; /** * 测试package-info.java文件的作用 * 1、为标注在包上Annotation提供便利;<br> * 2、声明包的私有类和常量;<br> * @author JoyoungZhang@gmail.com * */ public class TestPackageInfo { public static void main(String[] args) { //1 Package p = Package.getPackage("com.lt.package.test"); if(p != null && p.isAnnotationPresent(PackageAnotation.class)){ PackageAnotation nav = p.getAnnotation(PackageAnotation.class); if(nav != null){ System.out.println("package version:" + nav.version()); } } } }
输出结果: package version :1.0 (获取到注解中的version信息)
使用javadoc 生成doc文档时,package-info.java也会生成相应的文档说明,可以在这里面对类的信息进行描述。