注解是jdk1.5引入的新特性
自定义注解需要有2个东西
一、自定义注解类
package com.annotation;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@Retention(RetentionPolicy.RUNTIME)
public @interface Test_annotation {
public String value() default "hellow";
}
二、注解解析类
package com.resolver;
import java.lang.reflect.Method;
import com.annotation.Test_annotation;
/**
*
* annotation解析器
*
* @ClassName: Test_annotaton_resolver
* @author Administrator
* @date 2016年3月28日 下午3:13:43
* @version V2.0
*
*/
public class Test_annotaton_resolver {
public void resoler(Object obj,String methodname){
Method[] ms = obj.getClass().getMethods();
for (Method m:ms){
if(m.getName().equals(methodname)){
if(m.isAnnotationPresent(Test_annotation.class)){
Test_annotation tann=m.getAnnotation(Test_annotation.class);
try {
System.out.println(tann.value()+"before...");
m.invoke(obj, "123");
System.out.println(tann.value()+"after...");
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
}
通过注解解析类,我们就可以在标注了注解的类的执行前和执行后加上方法,JAVA中的注解即是通过这种方式实现的。当然过程肯定比这个复杂的多。