Rumah >Java >javaTutorial >Bagaimanakah anda boleh mendapatkan semula nama parameter kaedah Java menggunakan refleksi dalam Java 8?

Bagaimanakah anda boleh mendapatkan semula nama parameter kaedah Java menggunakan refleksi dalam Java 8?

Linda Hamilton
Linda Hamiltonasal
2024-11-07 17:22:02470semak imbas

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

Mendapatkan Nama Parameter Kaedah Java melalui Refleksi

Dalam Java, nama parameter kaedah tidak boleh diakses secara lalai, membawa kepada persoalan sama ada ia mungkin untuk mendapatkannya semula menggunakan refleksi .

Penyelesaian Java 8 dengan Pantulan Parameter

Sebelum Java 8, ia tidak boleh digunakan untuk mengakses nama parameter melalui refleksi. Walau bagaimanapun, dengan pengenalan pantulan parameter dalam Java 8, ia menjadi mungkin. Kod berikut menunjukkan cara untuk mendapatkan nama parameter:

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

Dalam contoh ini, kelas Whatever mengandungi kaedah aMethod dengan parameter integer bernama aParam. Dengan menggunakan kaedah method.getParameters(), anda boleh mendapatkan tatasusunan objek Parameter yang mewakili setiap parameter kaedah, bersama-sama dengan nama mereka.

Bendera Pengkompil (-parameters)

Ia penting untuk ambil perhatian bahawa Java 8 memerlukan mendayakan bendera pengkompil -parameters untuk menjadikan nama parameter boleh diakses semasa runtime. Dalam projek Maven, bendera ini boleh ditambahkan pada konfigurasi:

<compilerArgument>-parameters</compilerArgument>

Sebagai alternatif, dalam Java 8 versi pengkompil yang lebih baharu daripada 3.6.2, anda boleh menetapkan parameter kepada benar dalam :

<parameters>true</parameters>

Kesimpulan

Dengan pengenalan pantulan parameter dalam Java 8, mendapatkan nama parameter kaedah melalui pantulan kini boleh dilaksanakan. Dengan menggunakan kelas Parameter dan bendera pengkompil -parameters, anda boleh mengakses nama parameter pada masa jalan.

Atas ialah kandungan terperinci Bagaimanakah anda boleh mendapatkan semula nama parameter kaedah Java menggunakan refleksi dalam Java 8?. 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