This is my Blog!!Welcome to you!!
【分享个人java学习心得和技术问题汇总】

annotation(@Retention)的学习

Retention型态可以在您定义Annotation型态时,指示编译程序该如何对待您的自定义的Annotation型态。预设上编译程序会将Annotation信息留在.class档案中,但不被虚拟机读取,而仅仅用于编译程序或工具程序运行时提供信息。

在使用Retention时必须要提供一个RetentionPolicy的枚举类型参数。

RetentionPolicy有三个枚举内容:CLASS RUNTIME SOURCE
SOURCE, //编译程序处理完Annotation信息后就完成任务
CLASS,  //编译程序将Annotation储存于class档中,缺省
RUNTIME //编译程序将Annotation储存于class檔中,可由VM读入(通过反射机制)。这个功能搭配反射是非常强大的。

 

当使用@Retention时要记得加参数和加入”包”。

 

例子:

第一步:新建一个annotation,名字为:MyAnnotation.java。注意引入了Retention和RetentionPolicy这两个包

第二步:建立一个MyTest.java 来使用上面的annotation。

第三步:用反射机制来调用注解中的内容

运行结果

 

未经允许不得转载:Java学习 » annotation(@Retention)的学习

分享到:更多 ()