java解析注解
自定义注解
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface Pro {
    String className();
    String methodName();
}
解析注解
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
@Pro(className = "mystring.demo4.Student",methodName = "say")
public class ProTest {
    public static void main(String[] args) throws ClassNotFoundException, IllegalAccessException, InstantiationException, NoSuchMethodException, InvocationTargetException {
        //解析注解
        Class<ProTest> proTestClass = ProTest.class;
        //获取注解对象
        Pro annotation = proTestClass.getAnnotation(Pro.class);
        //获取注解属性
        String className = annotation.className();
        String methodName = annotation.methodName();
        //类反射
        Class<?> aClass = Class.forName(className);
        Object instance = aClass.newInstance();
        Method method = aClass.getMethod(methodName);
        method.invoke(instance);
    }
}
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号