package-info.java文件详解

pacakge-info.java介绍

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

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

package edu.jiangxin.tools;

包文档

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

    /**
     * 常用工具包<br>
     * @author Jiangxin
     * @version 1.0
     *
     */
    package edu.jiangxin.tools;

上面的说明通过JavaDoc生成如下:

在添加package-info.java之后,部分IDE可以在代码中进行提示,如下图:

包注释

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

包注释当然是ElementType.PACKAGE了,除此之外,还有:

    ElementType.TYPE (class, interface, enum) 
    ElementType.FIELD (instance variable) 
    ElementType.METHOD ElementType.PARAMETER 
    ElementType.CONSTRUCTOR 
    ElementType.LOCAL_VARIABLE 
    ElementType.ANNOTATION_TYPE

比如,想让包中的所有类型过时(Deprecate),你可以注释每一个单独的类型(类、接口、枚举等),如下所示:

    @DEPRECATED
    PUBLIC CLASS CONTACT {
    }

或者是可以在package-info.java包声明文件中使用@Deprecated注释,它可以让包中的一切均过时。

    @Deprecated
    package edu.jiangxin.tools;

把package-info.java添加到包中

可以手动在包目录下创建package-info.java文件,也可以通过Eclipse工具实现这一点。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java技术栈

Spring Enable*高级应用及原理

Enable* 之前的文章用到了一些Enable*开头的注解,比如EnableAsync、EnableScheduling、EnableAspectJAutoP...

4488
来自专栏Netkiller

Struts2 S2-046, S2-045 Firewall(漏洞防火墙)

开发中遇到一个问题,Struts2 已经升级到2.3.32但是故障依旧,绞尽脑汁找不出原因。此路不同另寻它路,我便想从运维角度暂时解决这个问题,给开发留出足够的...

2996
来自专栏散尽浮华

centos7下部署iptables环境纪录(关闭默认的firewalle)

CentOS7默认的防火墙不是iptables,而是firewall. 由于习惯了用iptables作为防火墙,所以在安装好centos7系统后,会将默认的fi...

2375
来自专栏Java与Android技术栈

android apt使用的填坑记录

大家都知道java的注解(Annotation) 包含了运行时注解和编译时注解。 运行时注解的例子:

1132
来自专栏ml

linux开关端口问题

linux开关端口问题: 我们知道一些常用的端口,比如mysql的端口为3306,sql的端口为:1433,以及tomcat的端口为 8008等等一样! ...

8906
来自专栏架构师之旅

【Java SE】Java NIO系列教程(四) Scatter/Gather

Java NIO开始支持scatter/gather,scatter/gather用于描述从Channel(译者注:Channel在中文经常翻译为通道)中读取或...

1909
来自专栏清晨我上码

netty前传-NIO中缓冲buffer-channel

针对上面这段代码表示,channel中的数据会根据数组的顺序,先写到buf01中,当buf01写完128个字节后,仍然有数据则会继续写入buf02。这样可以为我...

1172
来自专栏ppjun专栏

网管入门系列——在ubuntu配置iptables

iptables是用来设置、维护和检查Linux内核的IP包过滤规则的。就是一个ip防火墙,也就是说我们无论用什么端口访问别人还是别人用什么端口来访问我们,都要...

3362
来自专栏友弟技术工作室

iptables系列二

iptables系列之基本应用及显式扩展 ? netfilter:Framework,TCP,内核中 iptables语法 iptables [-t tab...

40312

在Debian上安装McMyAdmin for Minecraft

McMyAdmin是最受欢迎的Minecraft服务器控制面板之一。它拥有与第三方mod的兼容性,专注于服务器安全性和管理服务器的Web界面流畅性。本指南介绍了...

941

扫码关注云+社区

领取腾讯云代金券