首頁  >  文章  >  Java  >  Java反射可以檢索方法參數名稱嗎?

Java反射可以檢索方法參數名稱嗎?

Barbara Streisand
Barbara Streisand原創
2024-11-10 06:00:03950瀏覽

Can Java Reflection Retrieve Method Parameter Names?

Java 反射:存取方法參數名稱

問題:

Java 反射可以提供有關方法參數名稱的資訊嗎?

答案:

是的,Java 8 引入了使用反射獲取方法參數名稱的功能。

實作:

import java.lang.reflect.Method;
import java.lang.reflect.Parameter;
import java.util.ArrayList;
import java.util.List;

public class ParameterNames {

    public static List<String> getParameterNames(Method method) {
        if (!method.isParameterNamesPresent()) {
            throw new IllegalArgumentException("Parameter names are not present!");
        }

        Parameter[] parameters = method.getParameters();
        List<String> parameterNames = new ArrayList<>();

        for (Parameter parameter : parameters) {
            parameterNames.add(parameter.getName());
        }

        return parameterNames;
    }

    // For testing
    public static void main(String[] args) throws Exception {
        Method getParameterNamesMethod = ParameterNames.class.getMethod("getParameterNames", Method.class);
        List<String> parameterNames = getParameterNames(getParameterNamesMethod);
        System.out.println("Method parameter names: " + parameterNames);
    }
}

用法:

對於名為aMethod 且具有單一名為aParam 的參數的方法,getParameterNames 方法將會傳回["aParam"]。

其他資訊:

  • 使用-parameters 標誌進行編譯或在Maven 編譯器插件中將parameterscompiler 參數設為true 是在類別檔案中產生參數名稱所必需的。
  • Java 8 官方 Java 教程中發布的文檔獲取方法參數名稱提供了有關此功能的更多詳細資訊。

以上是Java反射可以檢索方法參數名稱嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn