springboot獲取方法的參數名

在springboot中獲取方法的參數名有兩種方式

用來驗證的方法,可以看到參數名有兩個,一個test,一個num

public String getString(String test,Integer num) { return ""; }

1.使用spring的LocalVariableTableParameterNameDiscoverer

定義使用類

private static LocalVariableTableParameterNameDiscoverer parameterNameDiscovere = new LocalVariableTableParameterNameDiscoverer();

我這裏是在aop使用,所以使用ProceedingJoinPoint獲取方法,parameterNameDiscovere.getParameterNames()需要傳入方法

String[] parameterNames = parameterNameDiscovere.getParameterNames(getMethod((ProceedingJoinPoint) joinPoint));
for (String parameterName : parameterNames) {
    logger.info(parameterName);
}

輸出結果,看着是按順序正確輸出了參數名

test

num

如果方法沒有參數,parameterNames返回爲null

2.使用AOP時候的ProceedingJoinPoint

  Signature signature = joinPoint.getSignature();
        MethodSignature methodSignature = (MethodSignature) signature;
        String[] strings = methodSignature.getParameterNames();
        System.out.println(Arrays.toString(strings));

輸出

[test, num]

 

目前是總結了兩種比較方便的方法,還有好的可以評論給我。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章