package J20250806.annotation; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; /** * @author WanJl * @version 1.0 * @title Demo02 * @description * @create 2025/8/6 */ public class Demo02 { public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException, InvocationTargetException { //1、通过反射获取UserTest类的字节码对象 Class clazz = Class.forName("J20250806.annotation.UserTest"); //2、通过反射创建对象 UserTest userTest =(UserTest) clazz.newInstance(); //3、通过反射获取这个类里面的所有方法的对象 Method[] methods = clazz.getDeclaredMethods(); //4、遍历这个数组 for (Method method:methods){ //我们可以拿到UserTest对象的每一个方法对象 //可以同一个方法来判断这个方法对象有没有标注注解 if (method.isAnnotationPresent(MyTest.class)){ //如果这个方法对象标注了MyTest注解,那么就执行这个方法 method.invoke(userTest); } } } }