关于JAVA的Annotation(注解的实现过程)

注解是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中的注解即是通过这种方式实现的。当然过程肯定比这个复杂的多。

你可能感兴趣的:(关于JAVA的Annotation(注解的实现过程))