前提条件
在java8中要获取类函数参数名称必须在编译时增加参数
编译器时加上-parameters参数
具体内容详见 java1.8获取类和接口函数参数名称
尝试使用javassist获取接口函数名称
1 添加依赖
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.23.1-GA</version>
</dependency>
2 在编译时增加-parameters参数
3 编写测试接口和测试方法
package js.oop.parameter;
import javassist.*;
import javassist.bytecode.*;
/**
* @Title: IParameterNameJavassist
* @Description: 演示 Javassist 获取接口的函数参数名称
* @author chy
* @date 2018/8/16 16:44
*/
public interface IParameterNameJavassist {
public abstract void test1(String myMsg);
public abstract void test2(String myMsg,int myAge);
public abstract void test3(String myMsg,int myAge, String mySex);
/**
* 获取类方法参数名称
* @param funName
*/
public static void getClassParamterName(String funName){
Class<?> clazz = ParameterNameJavassist.class;
ClassPool pool = ClassPool.getDefault();
try {
CtClass ctClass = pool.get(clazz.getName());
CtMethod ctMethod = ctClass.getDeclaredMethod(funName);