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
Lepaskan: 2024-11-07 17:22:02
asal
437 orang telah melayarinya

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

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

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

<parameters>true</parameters>
Salin selepas log masuk

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!

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