Rumah > Java > javaTutorial > teks badan

Bolehkah Java Reflection Mendapatkan Nama Parameter Kaedah?

Barbara Streisand
Lepaskan: 2024-11-10 06:00:03
asal
955 orang telah melayarinya

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);
    }
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan