按照文章里给的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();