packge-info.java

packge-info.java是一个Java文件,可以添加到任何的Java源码包中。packge-info.java的目标是提供一个包级的文档说明或者是包级的注释。

packge-info.java文件中,唯一要求包含的内容是包的声明语句,比如:

package com.jephon.pkg;

包文档

在Java 5之前,包级的文档是package.html,是通过JavaDoc生成的。而在Java 5以上版本,包的描述以及相关的文档都可以写入packge-info.java文件,它也用于JavaDoc的生成。比如:

/**
 * 定时任务处理
 * Created by jephon on 2016/10/31.
 */
package com.jephon.task;

标红的会在通过javadoc生成的文档中有体现。

包注释

注解对于程序员来说非常重要,packge-info.java文件包含了包级的注解。我们还可以使用ElementType来自定义注释。 

public enum ElementType {
    /** Class, interface (including annotation type), or enum declaration */
    TYPE,

    /** Field declaration (includes enum constants) */
    FIELD,

    /** Method declaration */
    METHOD,

    /** Formal parameter declaration */
    PARAMETER,

    /** Constructor declaration */
    CONSTRUCTOR,

    /** Local variable declaration */
    LOCAL_VARIABLE,

    /** Annotation type declaration */
    ANNOTATION_TYPE,

    /** Package declaration */
    PACKAGE,

    /**
     * Type parameter declaration
     *
     * @since 1.8
     */
    TYPE_PARAMETER,

    /**
     * Use of a type
     *
     * @since 1.8
     */
    TYPE_USE
}

比如,想让包中的所有类型过时(Deprecate),你可以注释每一个单独的类型(类、接口、枚举等),或者是可以在package-info.java包声明文件中使用@Deprecated注释,它可以让包中的一切均过时。

@Deprecated
package com.jephon.pkg;
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(value={CONSTRUCTOR, FIELD, LOCAL_VARIABLE, METHOD, PACKAGE, PARAMETER, TYPE})
public @interface Deprecated {
}

 

 

 
 

 

posted @ 2016-11-15 13:10  wade&luffy  阅读(380)  评论(0编辑  收藏  举报