ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java解析注解

2021-05-04 18:03:14  阅读:17  来源: 互联网

标签:lang java String methodName import 注解 解析 annotation


自定义注解

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);
    }
}


标签:lang,java,String,methodName,import,注解,解析,annotation
来源: https://www.cnblogs.com/codegzy/p/14729915.html

专注分享技术,共同学习,共同进步。侵权联系[admin#icode9.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有