使用注解替换配置文件,通过反射调取对象方法

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、获取该类字节码文件对象,明确类的类名为注解标注的类型。
        Class reflectTest=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);
    }
    
}

 

 

你可能感兴趣的:(【Java】)