java8获取方法的参数名称

来源:互联网 发布:成都淘宝美工培训班 编辑:程序博客网 时间:2024/06/01 10:20

参考这篇文章: http://www.concretepage.com/java/jdk-8/java-8-reflection-access-to-parameter-names-of-method-and-constructor-with-maven-gradle-and-eclipse-using-parameters-compiler-argument#maven

按照文章里给的demo先做个测试:

建两个类:

BookService

package test;public class BookService {public BookService(Integer bookId, String bookDesc) {System.out.println(bookId +":"+ bookDesc );}public void evaluateBook(String bookName, Integer bookPrice) {System.out.println(bookName + ":" + bookPrice);}} 

MethodParameterNamesDemo

package test;import java.lang.reflect.Method;import java.lang.reflect.Parameter;public class MethodParameterNamesDemo {public static void main(String[] args) throws NoSuchMethodException, SecurityException {Method[] methods = BookService.class.getDeclaredMethods();for (Method method : methods) {System.out.println(method.getName());System.out.println("-------------");Parameter[] parameters = method.getParameters();for (Parameter p : parameters) {if (p.isNamePresent()) {System.out.println(p.getName());}}}}} 

第一次编译先不加 -parameters 参数,只输出了

evaluateBook-------------
加上  -parameters 编译:



getParameters()方法就有结果了:

Parameter[] parameters = method.getParameters();

原创粉丝点击