自定义注解类
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@Retention(RetentionPolicy.RUNTIME)
public @interface MyUnit {
boolean value() default true;
}
执行体
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
public class MyUnitTest {
/**
* 令带有@MyUnit注解的方法可以被测试执行
*/
@MyUnit
public void tes1(){
System.out.println("====I am test 1====");
}
public void tes2(){
System.out.println("====I am test 2====");
}
@MyUnit
private void tes3(){
System.out.println("====I am test 3====");
}
public static void main(String[] args) throws InvocationTargetException, IllegalAccessException {
Class<MyUnitTest> cl = MyUnitTest.class;
Method[] mes = cl.getDeclaredMethods();
MyUnitTest mut = new MyUnitTest();
for (Method method : mes) {
if (method.isAnnotationPresent(MyUnit.class)){
method.invoke(mut);
}
}
}
}