Rumah >Java >javaTutorial >Bagaimana untuk Mendapatkan Nama dan Jenis Parameter Kaedah Menggunakan Refleksi Java?

Bagaimana untuk Mendapatkan Nama dan Jenis Parameter Kaedah Menggunakan Refleksi Java?

DDD
DDDasal
2024-11-08 11:55:01340semak imbas

How to Get Method Parameter Names and Types Using Java Reflection?

Mendapatkan Nama Parameter Kaedah melalui Refleksi Java

Masalah:

Diberikan kelas Java dengan kaedah yang menerima parameter, bagaimana anda boleh menentukan nama dan jenis parameter menggunakan pantulan Java?

Penyelesaian:

Dalam Java 8 dan kemudian, kelas Parameter menyediakan akses kepada nama parameter. Untuk mendapatkan maklumat parameter:

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

public class ParameterNames {

    public static void getParameterNames(Method method) {
        Parameter[] parameters = method.getParameters();

        for (Parameter parameter : parameters) {
            System.out.printf("Parameter name: %s, Type: %s%n", parameter.getName(), parameter.getType().getName());
        }
    }

    public static void main(String[] args) {
        try {
            Method method = Whatever.class.getMethod("aMethod", int.class);
            getParameterNames(method);
        } catch (NoSuchMethodException e) {
            e.printStackTrace();
        }
    }

    public static class Whatever {
        public void aMethod(int aParam) {
        }
    }
}

Output:

Parameter name: aParam, Type: int

Nota Penting:

Untuk ini berfungsi, anda perlu menentukan -parameters hujah semasa menyusun kod Java anda. Contohnya, untuk pengguna Maven:

<configuration>
    <parameters>true</parameters>
    <compilerArgument>-parameters</compilerArgument>
</configuration>

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Nama dan Jenis Parameter Kaedah Menggunakan Refleksi Java?. 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