jdk1.5中的注解应用的回顾

最近在深入的学习spring,但是spring里面的注解究竟是怎么实现的很多教材上没有说明,所以今天就特地的回顾了一下jdk1.5的注解机制

//@Target(ElementType.TYPE)
@Target({ElementType.TYPE,ElementType.METHOD})// 标注Annation可以用在哪里
@Documented //是否让Annation注解出现在帮助文档中
@Retention(RetentionPolicy.RUNTIME) //Annation作用域,SOURCE,Annation只在源文件中起作 //用 ,.class在类和源文件中起作用,runtime在源文件、类和运行过程中都行
public @interface AnnationTest {
String type(); //注解 类中的属性
}


@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface Age {
int age();
}


@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface Name {
String name();
}




@AnnationTest(type="注解标注在类上")
public class test {
@Age(age=55)
public void getAge(){
}
@Name(name="吴传龙")
public void getName(){

}
}


/**
* 注解解析器
* @author Administrator
*
*/
public class AnnotionParser {
@Test
public void test() throws Exception{
Class cla = Class.forName("JdkAnnotationTest.test");
/**类上的注解*/
if(cla.isAnnotationPresent(AnnationTest.class)){//如果注解存在
AnnationTest test = (AnnationTest) cla.getAnnotation(AnnationTest.class);
System.out.println(test.type());
}

/**方法上的注解*/
Method[] method = cla.getMethods();
for(Method m:method){
if(m.isAnnotationPresent(Age.class)){
Age test = (Age) m.getAnnotation(Age.class);
System.out.println(test.age());
}
}
}
}

你可能感兴趣的:(JDK1.5,新特性注解)