首頁 > Java > java教程 > 如何在 Java 8 中使用反射檢索 Java 方法參數名稱?

如何在 Java 8 中使用反射檢索 Java 方法參數名稱?

Linda Hamilton
發布: 2024-11-07 17:22:02
原創
381 人瀏覽過

How can you retrieve Java method parameter names using reflection in Java 8?

透過反射來取得Java方法參數名稱

在Java中,方法參數名稱預設是無法存取的,這就產生了一個問題:是否可以使用反射來取得它們.

帶有參數反射的Java 8 解

在Java 8 之前,透過反射存取參數名稱是不可行的。然而,隨著 Java 8 中參數反射的引入,這成為可能。以下程式碼示範如何取得參數名稱:

import java.lang.reflect.Method;
import java.lang.reflect.Parameter;

public class ParameterReflection {

    public static void main(String[] args) {
        Class<?> clazz = Whatever.class;

        Method[] methods = clazz.getDeclaredMethods();
        for (Method method : methods) {
            if (method.getName().equals("aMethod")) {
                Parameter[] parameters = method.getParameters();
                for (Parameter parameter : parameters) {
                    System.out.println(parameter.getName());
                }
                break;
            }
        }
    }
}
登入後複製

在此範例中,Whatever 類別包含一個aMethod 方法,該方法具有名為的整數參數aParam.透過使用method.getParameters() 方法,您可以檢索代表該方法的每個參數及其名稱的Parameter 物件陣列。

編譯器標誌(-parameters)

這很重要需要注意的是,Java 8 需要啟用編譯器標誌 -parameters 以使參數名稱在運行時可存取。在 Maven 專案中,可以將此標誌新增至 中。設定:

<compilerArgument>-parameters</compilerArgument>
登入後複製

或者,在高於3.6.2 的Java 8 版本編譯器中,您可以在 中將參數設為true:

<parameters>true</parameters>
登入後複製

結論

隨著Java 8中參數反射的引入,透過反射取得方法參數名稱現在是可行的。透過使用 Parameter 類別和 -parameters 編譯器標誌,您可以在執行時間存取參數名稱。

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板