﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-走自己的路-文章分类-J2SE and JVM</title><link>http://www.blogjava.net/ldd600/category/30020.html</link><description>路漫漫其修远兮，吾将上下而求索</description><language>zh-cn</language><lastBuildDate>Sat, 24 May 2008 10:15:56 GMT</lastBuildDate><pubDate>Sat, 24 May 2008 10:15:56 GMT</pubDate><ttl>60</ttl><item><title>如何读取自定义的Annotation</title><link>http://www.blogjava.net/ldd600/articles/188132.html</link><dc:creator>叱咤红人</dc:creator><author>叱咤红人</author><pubDate>Mon, 24 Mar 2008 01:15:00 GMT</pubDate><guid>http://www.blogjava.net/ldd600/articles/188132.html</guid><wfw:comment>http://www.blogjava.net/ldd600/comments/188132.html</wfw:comment><comments>http://www.blogjava.net/ldd600/articles/188132.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ldd600/comments/commentRss/188132.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ldd600/services/trackbacks/188132.html</trackback:ping><description><![CDATA[&nbsp;
<p><span style="font-family: 宋体">当我们编写了自定义的</span>annotation<span style="font-family: 宋体">我们需要在程序中去访问这些</span>annotation<span style="font-family: 宋体">。读取</span>annotation<span style="font-family: 宋体">的方法大概分为以下</span>3<span style="font-family: 宋体">种：</span></p>
<p><span style="font-family: 宋体"><strong>常规工具</strong>：是一些可以分析源代码的工具，并且做一些相关处理。比如编译器和文档产生器都属于这一类。常规工具不</span>load <span style="font-family: 宋体">被注释的类和注释接口到虚拟机中。只是在源代码级别进行分析和处理。</span></p>
<p><span style="font-family: 宋体"><strong>特定工具</strong>：也是一些可以分析源代码的工具，但是需要装载注释接口到虚拟机中，比如</span>stub<span style="font-family: 宋体">产生器。</span></p>
<p><span style="font-family: 宋体"><strong>反省</strong>：是一些可以在运行时获取自己的注释的程序，这些注释的</span>retentionpolicy<span style="font-family: 宋体">是</span>runtime<span style="font-family: 宋体">。反省需要装载被注释的类和注释接口到虚拟机中。</span></p>
<p><span style="font-family: 宋体"><strong>常规工具</strong>：新的</span>Doclet API(com.sun.javadoc), APT<span style="font-family: 宋体">等</span></p>
<p><span style="font-family: 宋体"><strong>特定工具</strong>：</span>JSR-269(<span style="font-size: 10pt; color: black; font-family: Arial">(Pluggable Annotation Processing API</span>), <span style="font-family: 宋体">一些</span>code generation framework<span style="font-family: 宋体">像</span>ASM(AnnotationVisistor), <span style="font-size: 10pt; color: black; font-family: Arial">javaassist(</span>AnnotationsAttribute<span style="font-size: 10pt; color: black; font-family: Arial">), BECL</span><span style="font-size: 10pt; color: black; font-family: 宋体">等都可以在这个级别获取注释。</span></p>
<p><span style="font-size: 10pt; color: black; font-family: 宋体"><span style="font-size: 12pt"><span style="color: black; font-family: 宋体"><strong>反省</strong></span></span>：</span><span style="font-size: 10pt; color: black; font-family: Arial">java</span><span style="font-size: 10pt; color: black; font-family: 宋体">反射和</span><span style="font-size: 10pt; color: black; font-family: Arial">AOP.</span></p>
 <img src ="http://www.blogjava.net/ldd600/aggbug/188132.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ldd600/" target="_blank">叱咤红人</a> 2008-03-24 09:15 <a href="http://www.blogjava.net/ldd600/articles/188132.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>