美文网首页技术栈
2019-03-18——Java反射 Parameter

2019-03-18——Java反射 Parameter

作者: 烟雨乱平生 | 来源:发表于2019-03-19 00:04 被阅读0次

    Parameter类主要用于在程序运行状态中,动态地获取参数信息,包括参数名、修饰符、参数类型、参数化类型、可变参数、注解。

    在jdk8之前,编译器会忽略我们编写代码时设定的参数名,因此会得到像 arg0、arg1 这样无意义的参数名,比如:当我们使用 mybatis 时,我们可能会用到 @Param 注解来使 mybatis 保留参数名称

    Maven编译插件

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.8.0</version>
        <configuration>
            <compilerArgument>-parameters</compilerArgument>
            <source>1.8</source>
            <target>1.8</target>
        </configuration>
    </plugin>
    

    常用方法说明

    方法 说明
    getDeclaringExecutable() 获取该参数的可执行对象,一般是该参数所在的方法或构造函数
    getModifiers() 返回修饰该参数对象修饰符的整数形式,使用 Modifier 类对其进行解码
    getName() 返回参数对象名称
    getParameterizedType() 返回该参数对象表示的参数化类型的参数 (即泛型)
    getType() 获取该参数对象的声明类型参数对象,会擦除泛型
    isImplicit() 如果该参数对象为隐式参数,则返回true,否则为false。java编译器会为内部类的构造方法创建一个隐式参数
    isNamePresent() 如果该参数对象根据类文件有名称,则返回true,否则为false,当我们编译时带上 -parameters 参数时,该参数对象就有了名称
    isSynthetic() 如果该参数对象为合成参数,则返回true,否则为false
    isVarArgs() 如果该参数对象表示 可变参,则返回true,否则为false

    相关文章

      网友评论

        本文标题:2019-03-18——Java反射 Parameter

        本文链接:https://www.haomeiwen.com/subject/btaimqtx.html