Rumah >Java >javaTutorial >Bolehkah Java Reflection Mendapatkan Nama Parameter Kaedah?

Bolehkah Java Reflection Mendapatkan Nama Parameter Kaedah?

Barbara Streisand
Barbara Streisandasal
2024-11-10 06:00:03956semak imbas

Can Java Reflection Retrieve Method Parameter Names?

Java Reflection: Mengakses Nama Parameter Kaedah

Soalan:

Bolehkah Java reflection memberikan maklumat tentang parameter kaedah nama?

Jawapan:

Ya, Java 8 memperkenalkan keupayaan untuk mendapatkan nama parameter kaedah menggunakan refleksi.

Pelaksanaan:

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);
    }
}

Penggunaan:

Untuk kaedah bernama aMethod dengan parameter tunggal bernama aParam , kaedah getParameterNames akan kembali ["aParam"].

Maklumat Tambahan:

  • Menyusun dengan bendera -parameters atau menetapkan Argumen penyusun parameter kepada benar dalam pemalam pengkompil Maven diperlukan untuk menjana nama parameter dalam fail kelas.
  • Java 8 mengeluarkan dokumen Mendapatkan Nama Kaedah Parameter dalam Tutorial Java rasmi memberikan butiran lanjut tentang ciri ini.

Atas ialah kandungan terperinci Bolehkah Java Reflection Mendapatkan Nama Parameter Kaedah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn