0
点赞
收藏
分享

微信扫一扫

Java 8 新特性 - 在运行时获得Java程序中方法的参数名称


目录:​​Java 8 新特性-终极指南​​

文章目录

  • ​​Java 8 新特性 - 在运行时获得Java程序中方法的参数名称​​

Java 8 新特性 - 在运行时获得Java程序中方法的参数名称

为了在运行时获得Java程序中方法的参数名称,老一辈的Java程序员必须使用不同方法,例如​​Paranamer liberary​​。Java 8终于将这个特性规范化,在语言层面(使用反射API和 Parameter.getName()方法 )和字节码层面(使用新的javac编译器以及 -parameters 参数)提供支持。

package com.javacodegeeks.java8.parameter.names;

import java.lang.reflect.Method;
import java.lang.reflect.Parameter;

public class ParameterNames {
public static void main(String[] args) throws Exception {
Method method = ParameterNames.class.getMethod("main", String[].class );
for( final Parameter parameter: method.getParameters() ) {
System.out.println( "Parameter: " + parameter.getName() );
}
}
}

在Java 8中这个特性是默认关闭的,因此如果不带 -parameters 参数编译上述代码并运行,则会输出如下结果:

Parameter:

如果带 -parameters 参数,则会输出如下结果(正确的结果):

Parameter:

如果你使用Maven进行项目管理,则可以在 maven-compiler-plugin 编译器的配置项中配置**-parameters**参数:

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


举报

相关推荐

0 条评论