本文共 1045 字,大约阅读时间需要 3 分钟。
package com.tfjy.Annotation;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;@MyAnnotation(className = "com.tfjy.Annotation.AnnotationDemo2",methodName = "show")public class ReflectTest { public static void main(String[] args) throws ClassNotFoundException, IllegalAccessException, InstantiationException, NoSuchMethodException, InvocationTargetException { //不读取配置文件,利用注解达到使用配置文件,进行反射,创建实例,调取对象方法。 //1、获取该类字节码文件对象,明确类的类名为注解标注的类型。 ClassreflectTest=ReflectTest.class; //2、获取该字节码文件上面的注解 MyAnnotation myanno=reflectTest.getAnnotation(MyAnnotation.class); //3、通过注解对象获取注解中的抽象方法的返回值。 String className=myanno.className(); String methodName=myanno.methodName(); //以上是变量的获取:类名,方法名都获取之后,变量都已经具备了,开始通过反射实例化对象,调取方法 //4、加载该类进内存 Class cls=Class.forName(className); //5、实例化对象 Object obj=cls.newInstance(); //6、获取方法对象 Method method=cls.getMethod(methodName); //7、调用方法 method.invoke(obj); } }
转载地址:http://bsxez.baihongyu.com/