public class DemoA {
public void method1() {
System.out.println("DemoA method1方法被调用");
}
@Test
public void method2() {
System.out.println("DemoA method2方法被调用");
}
@Test
public void method3() {
System.out.println("DemoA method3方法被调用");
}
}
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
public class DemoB {
public static void main(String[] args) throws Exception {
Class<DemoA> clazz = DemoA.class;
Constructor<DemoA> constructor = clazz.getConstructor();
DemoA demoA = constructor.newInstance();
Method[] methods = clazz.getDeclaredMethods();
for (Method method : methods) {
if (method.isAnnotationPresent(Test.class)) {
method.invoke(demoA);
}
}
}
}
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@Retention(value = RetentionPolicy.RUNTIME)
public @interface Test {
}