Rumah > Java > javaTutorial > Bagaimanakah Saya Boleh Mendapatkan Nama Parameter Kaedah Menggunakan Refleksi Java?

Bagaimanakah Saya Boleh Mendapatkan Nama Parameter Kaedah Menggunakan Refleksi Java?

Susan Sarandon
Lepaskan: 2024-11-08 19:52:02
asal
841 orang telah melayarinya

How Can I Retrieve Method Parameter Names Using Java Reflection?

Bolehkah saya Mendapatkan Nama Parameter Kaedah Menggunakan Refleksi Java?

Dalam Java sebelum versi 8, mendapatkan nama parameter kaedah tidak dapat dilakukan secara langsung melalui refleksi. Walau bagaimanapun, dengan pengenalan Java Reflection API dalam versi 8, keupayaan ini telah diperkenalkan.

Mengambil Nama Parameter dalam Java 8

Untuk mendapatkan semula nama parameter kaedah menggunakan refleksi Java 8, anda boleh menggunakan pendekatan berikut:

  1. Dapatkan objek Kaedah kaedah berkenaan menggunakan refleksi (Method.getMethod() atau Class.getDeclaredMethod()).
  2. Gunakan kaedah getParameters() bagi objek Method untuk mendapatkan tatasusunan objek Parameter.
  3. Semak sama ada nama parameter adalah tersedia dengan memanggil isNamePresent() pada setiap objek Parameter. Jika tidak, anda tidak boleh mendapatkan nama parameter.
  4. Dapatkan semula nama parameter dengan memanggil getName() pada objek Parameter.

Contoh Kod

Kod berikut menunjukkan cara untuk mendapatkan semula nama parameter kaedah dalam Java 8:

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

public class MethodParameterNames {

    public static void main(String[] args) {
        try {
            // Get the class object
            Class<?> clazz = Class.forName("Whatever");

            // Get the method object
            Method method = clazz.getMethod("aMethod", int.class);

            // Get the parameter array
            Parameter[] parameters = method.getParameters();

            // Extract and print the parameter names
            for (Parameter parameter : parameters) {
                System.out.println(parameter.getName());
            }
        } catch (ClassNotFoundException | NoSuchMethodException e) {
            e.printStackTrace();
        }
    }
}
Salin selepas log masuk

Tambahan Maklumat

  • Untuk contoh kod di atas berfungsi, anda perlu menyusun kod anda dengan hujah pengkompil -parameters untuk membolehkan pengekalan nama parameter.
  • Keupayaan untuk mendapatkan nama parameter ialah ciri yang agak baharu, jadi ia mungkin tidak disokong dalam semua persekitaran Java. Sila semak keserasian versi Java anda.
  • Untuk dokumentasi terperinci, rujuk sumber berikut:

    • [Tutorial Java: Mendapatkan Nama Kaedah Parameter](https://docs.oracle.com/javase/tutorial/reflect/methodparameterreflection.html#obtainingnames)
    • [Javadoc untuk Kelas Parameter](https://docs.oracle.com/javase/ 8/docs/api/java/lang/reflect/Parameter.html)

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Nama Parameter Kaedah Menggunakan Refleksi Java?. 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