java注解的基本操作(java注解用代码的基本实现)

这里只例举了在方法上的注解操作,其他方面与此操作类似,我就不多提了,想深入了解可以查资料或者看书哈,具体看代码如何实现吧。

我编写的注解处理器代码为:



被测试的类内容如下:




代码实现如下:


package com.jiaxun.annotation;

import java.lang.annotation.Annotation;
import java.lang.reflect.Method;

public class AnnotationDemo {
	//通过注解来实现方法调用
	public static void annotationTest1()throws Exception{
		Class clazz = Class.forName("com.jiaxun.annotation.TestClass");
		TestClass newInstance = (TestClass)clazz.newInstance();
		for (Method method : clazz.getMethods()) {
			for (Annotation annotation : method.getAnnotations()) {
			String annotationName = annotation.annotationType().getSimpleName();
			String annotationFieldName = ((Test) annotation).name();
			if(annotationFieldName.equals("zengjiaxun"))
				method.invoke(newInstance);
			}
		}
	}
	//通过注解属性值来实现方法调用
	public static void annotationTest2()throws Exception{
		Class clazz = Class.forName("com.jiaxun.annotation.TestClass");
		TestClass newInstance = (TestClass)clazz.newInstance();
		for (Method method : clazz.getMethods()) {
			Annotation[] annotations = method.getAnnotations();
			for (Annotation annotation : annotations) {
				String annotationName = ((Test)annotation).name();
				if(annotationName.equals("xun")){
					method.invoke(newInstance);
				}
			}
		}
	}
	public static void main(String[] args) throws Exception {
		annotationTest1();
		annotationTest2();
	}
}

输出结果为



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章