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 |
网友评论