知识大全 Annotation之ElementType.PACKAGE
Posted 文件
篇首语:守望相助,一缕阳光也将照亮心扉;同心协力,一点火光也能温暖灵魂。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Annotation之ElementType.PACKAGE相关的知识,希望对你有一定的参考价值。
Annotation之ElementType.PACKAGE 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
Annotation的出现 给优美的Java再添加了更广阔的空间 让你可以设计出更加完美 更加叹为观止的程序
项目关系 用到了这个东东在满天下泛滥的ElementType TYPE ElementType METHOD现在 Google下 就可以发现 用ElementType PACKAGE真的少得可怜
正因为如此 写下此日志 给有需要的人一些参考 有关ElementType PACKAGE
之前还是温习下ElementType的其它各个元素
ElementType TYPE (class interface enum)
ElementType FIELD (instance variable)
ElementType METHOD
ElementType PARAMETER
ElementType CONSTRUCTOR
ElementType LOCAL_VARIABLE
ElementType ANNOTATION_TYPE (应用于另一个注解上)
ElementType PACKAGE
当一个Annotation接口被声明为
@Target(value=ElementType PACKAGE)时 它即是对包的修饰注释 看下面的例子
package xu ycoe navigator;
import java lang annotation Documented;
import java lang annotation ElementType;
import java lang annotation Retention;
import java lang annotation RetentionPolicy;
import java lang annotation Target;
@Target(value=ElementType PACKAGE ElementType TYPE ElementType METHOD)
@Retention(RetentionPolicy RUNTIME)
@Documented
public @interface Navigator
public String name();
public String values();
代码里用到的除了ElementType PACKAGE 其它的都很熟悉了吧 不再多说 不明的 自己Google下
上面定义了一个可在包 类 接口 方法中使用的Annotation
一般情况下 是这样应用的
@Navigator(name= package values= 我在包里 )
package xu ycoe navigator;
@Navigator(name= class values= 我在类里 )
public class NavigateManager
@Navigator(name= method values= 我在方法里 )
public void Test()
OK 但是在Eclipse下会出现一个错误 Package annotations must be in file package info java可郁闷透了 在Eclipse下 无法直接创建package info java类 原因是类名不合法 晕哦~~~只好强行创建了 使用Eclipse下的新建文件(任意文本文件 把文件名改为package info java即可)
文件的内容如下
@Navigator(name= package values= 我在包里 ) package xu ycoe navigator;
//如果这个包与Annotation不在同一包下时要import进来Annotation的包
import xu ycoe navigator Navigator;好啦 包的注释是不能放在某一个类里面的 而是要在此包下面新建一个package info java文件 在那里面写注释
OK 一切就序 没有报错了
下面看看怎样使用吧
其实很简单 直接使用java lang Package类就可以了 和类 方法中的Annotation使用完全一样
Package p = Package getPackage( xu ycoe navigator );
if(p!=null && p isAnnotationPresent(Navigator class))
Navigator nav = p getAnnotation(Navigator class);
if(nav !=null) System out println(nav values()+ ======================= +nav name());
但是有一个地方要注意一下 Java的包不是一下子全部一起加载 而是在使用到的时候才去加载的
这样 在使用Package getPackage(String name)的时候 如果这个包下的类还没有被加载过 就会直接返回一个null值 原因嘛 看看java源码
Code
public static Package getPackage(String name)
ClassLoader l = ClassLoader getCallerClassLoader();
if (l != null) return l getPackage(name);
else
return getSystemPackage(name);
好了 这一点注意一下就没什么问题了
cha138/Article/program/Java/hx/201311/26731相关参考
java反射Annotation 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! importja
使用Annotation设计持久层 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nb
基础学习教程:JavaAnnotation入门 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 摘
知识大全 Hibernate(jpa)复合主键annotation声明方法
Hibernate(jpa)复合主键annotation声明方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起
知识大全 spring用annotation-autowire配置
<?xmlversion=encoding=UTF?> <beansxmlns= xmlns:xsi=instance xmlns:p= xsi:schemaLocati
知识大全 学习JPA——Hibernate Annotation使用实例
学习JPA——HibernateAnnotation使用实例 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看
知识大全 通过Spring2.5对单元测试的Annotation支持进行TDD开发
通过Spring2.5对单元测试的Annotation支持进行TDD开发 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们
知识大全 Hibernate Annotation中BLOB、CLOB注解写法
HibernateAnnotation中BLOB、CLOB注解写法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一
Java中的注解以及应用 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Annotation注解
“古之天下,亦今之天下,今之天下,亦古之天下”这是_____。A、形而上学的观点B、唯物主义观点C、辩证法观点D、唯心主义观点答案:A解析:本命题尽管以客观事实(天下之事物)为研究对象,但是在研究的过