package-info.java
参考文章: http://blog.sina.com.cn/s/blog_93dc666c0101gzlr.html
对于package-info.java我们并不陌生,但又陌生。
在我们每次建立package包的时候会自动生成一个package-info.java文件。但这个文件内部并没有任何东西。
因-为特殊字符在java中不能作为文件名,因此我们不能在java中new Class的形式建立。
一种是建立一个package生成package-info.java,另一种是用文本编辑器建立一个文件复制进来。
package-info.java 属于特殊java文件,不同于以往的java文件。没有继承没有public、private修饰符
package-info.java作用:
- 为标注在包上Annotation提供便利;
- 声明友好类和包常量;
- 提供包的整体注释说明。
以下是例子:

其中 PackAnnotation注明作用到Package上:
@Target(ElementType.PACKAGE)
@Retention(RetentionPolicy.RUNTIME)
public @interface PackAnnotation {
}
package-info.java
/**
* 本包主要做测试用,用于学习package-info.java文件的作用.
* @author DennyZhao
*
*/
@PackAnnotation
package pack.info.test; import java.lang.annotation.Annotation; /**
* 本包单用Utils
* @author DennyZhao
*
*/
class CommonPackUtils{
public static void formatPackage(String packName) {
Package pack = Package.getPackage(packName);
Annotation[] annotations = pack.getAnnotations();
for(Annotation anno : annotations) {
System.out.println(anno.annotationType().getName());
}
}
}
/**
* 本包单用约束
* @author DennyZhao
*
*/
class CommonPackConstants{
public static final String PACK_NAME = "pack.info.test";
}
PackTest.java
public class PackTest {
public static void main(String[] args) {
CommonPackUtils.formatPackage(CommonPackConstants.PACK_NAME);
}
}
从以上例子可以看出:
1. 我们的公共类CommonPackUtils只能在本package中使用,子包和兄弟包都不能使用。
2. 注解的作用范围控制在包上,则除此之外无法调用。
3. pack-info添加注释,会作为package的javadoc而存在。
package-info.java的更多相关文章
- paip.自动import的实现跟java.lang.SecurityException Prohibited package name java
paip.自动import的实现跟java.lang.SecurityException Prohibited package name java #-----自动import 因为java.lang ...
- Java报错信息 java.lang.SecurityException: Prohibited package name: java.xxx
package java.yun.System; public class SystemOut { public static void main(String[] args) { System.ou ...
- java classpath import package 机制 @Java的ClassPath, Package和Jar
java classpath import package 机制 從一個簡單的例子談談package與import機制 基本原則:為什麼需要將Java文件和類文件切實安置到其所歸屬之Package ...
- 如何在命令提示符下编译运行含有Package的java文件
这篇是大二自学Java的时候记下的笔记,中午回顾印象笔记的时候意外看到了这篇.看到多年前写下的文字,我想起那时候我对Java的懵懵懂懂,每天晚上在图书馆照着书写书上的示例代码,为一个中文分号绞尽脑汁, ...
- 手动编译含package的java源程序(包含外部包中定义的类)
1)定义一个GSM类,如下: 包名是“SRC.GSM”,并且此程序引用了外部jar包.使用javac命令对GSM.java进行编译: GSM.java所在的文件夹如下所示: 切换到这个目录为当前工作目 ...
- [JAVA] 日常填坑 java.lang.SecurityException: Prohibited package name: java.xxx
java虚拟机不允许包名以java开头. https://blog.csdn.net/sinat_28690417/article/details/72328547
- 使用junit单元测试,报Cannot instantiate test(s): java.lang.SecurityException: Prohibited package name: java.com.com.test
在测试类中不能一级包名不能以java开头, 将包改为com.com.test就好了.
- Java的Package和Classpath
Package 在Java中,Package是用来包含一系相关实例的集合.这些相关联的实例包括:类.接口.异常.错误以及枚举. Package主要有一些的几点作用: Package可以处理名字冲突,在 ...
- Java 包(package)详解
为了更好地组织类,Java提供了包机制,用于区别类名的命名空间. 包的作用 1 把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用. 2 如同文件夹一样,包也采用了树形目录的存储方式.同一 ...
- package、import、java及javac的相关介绍(转)
Package: package中所存放的文件 所有文件,不过一般分一下就分这三种 1.java程序源文件,扩展名为.java: 2.编译好的java类文件,扩展名为.class: 3.其他文件,也称 ...
随机推荐
- C++之二阶构造模式
前言:C++中经常会因为调用系统资源失败导致出现BUG,所以在类调用构造函数需要分配系统资源时会出现BUG,从而导致类对象虽然被创建,但是只是个半成品,为了避免这种情况需要使用二阶构造模式 二阶构造模 ...
- mysql查询优化之二:查询优化器的局限性
在<mysql查询优化之一:mysql查询优化常用方式>一文中列出了一些优化器常用的优化手段.查询优化器在提供这些特性的同时,也存在一定的局限性,这些局限性往往会随着MySQL版本的升级而 ...
- 网站首页多URL可访问,如何集中首页网站权重?
原文地址:http://ask.seowhy.com/question/8573 百度站长平台Lee在文章<建立符合搜索引擎抓取习惯>一文中提出:唯一性网站中同一内容页只与唯一一个url相 ...
- C++单例模式的实现及举例
单例模式的概念和用途: 在它的核心结构中只包含一个被称为单例的特殊类.通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便实例个数的控制并节约系统资源. 如果希望在系统中某个类 ...
- ubuntu 间简单相互通信
1. nc 命令 在一台机器上运行nc -l 来监听本机的2222号端口 另外一台机器就能连接到这台监听的机器上,假设上面那台机器的ip是192. nc 之后就能互相发送字符了 2. iptux通 ...
- CRM 2016 升级CRM365之注意事项
https://docs.microsoft.com/zh-cn/previous-versions/dynamicscrm-2016/deployment-administrators-guide/ ...
- (转)C# WebApi 跨域问题解决方案:CORS
原文地址:http://www.cnblogs.com/landeanfen/p/5177176.html 阅读目录 一.跨域问题的由来 二.跨域问题解决原理 三.跨域问题解决细节 1.场景描述 2. ...
- better-scroll高度问题
better-scroll无法滚动主要2方面原因,1)层级关系.2)高度问题
- CS229 6.1 Neurons Networks Representation
面对复杂的非线性可分的样本是,使用浅层分类器如Logistic等需要对样本进行复杂的映射,使得样本在映射后的空间是线性可分的,但在原始空间,分类边界可能是复杂的曲线.比如下图的样本只是在2维情形下的示 ...
- Error: Can't find Python executable "G:\Python27"
错误如题,node-gyp官网介绍不够详细,应设置python.exe的具体绝对路径,如下所示: npm config set python G:\Python27\python.exe