package com.itheima.myanno3;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@Retention(value = RetentionPolicy.RUNTIME)
public @interface Test {
}
package com.itheima.myanno3;
public class UseTest {
public void show(){
System.out.println("useTest .... shwo...");
}
@Test
public void method(){
System.out.println("UseTest....method.....");
}
@Test
public void function(){
System.out.println("UseTest....fuction.....");
}
}
package com.itheima.myanno3;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
public class AnnoDemo {
public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException, InvocationTargetException {
Class clazz = Class.forName("com.itheima.myanno3.UseTest");
UseTest useTest = (UseTest) clazz.newInstance();
Method[] methods = clazz.getDeclaredMethods();
for (Method method : methods) {
if (method.isAnnotationPresent(Test.class)){
method.invoke(useTest);
}
}
}
}