Mengakses Nama Parameter Kaedah dalam Java Reflection
Pengenalan:
Dalam pengaturcaraan Java, ia boleh berguna untuk mengetahui nama-nama parameter kaedah dalam kelas. Maklumat ini berguna dalam pelbagai senario, seperti penyahpepijatan, pengelogan atau menganalisis kebergantungan kod. Dalam artikel ini, kami akan meneroka cara mendapatkan nama parameter kaedah menggunakan pantulan Java.
Kaedah getParameterNames() dalam Java 8:
Dalam Java 8 dan versi yang lebih baru, java Kelas .lang.reflect.Parameter menyediakan kaedah getParameterNames(). Kaedah ini membolehkan kami mendapatkan semula tatasusunan objek String yang mengandungi nama semua parameter dalam kaedah tertentu. Untuk menggunakan kaedah ini, pertama sekali kita perlu mendapatkan objek Kaedah yang mewakili kaedah yang dimaksudkan.
Kod Contoh:
Kod berikut menunjukkan cara menggunakan getParameterNames() untuk mendapatkan parameter nama untuk kaedah aMethod():
import java.lang.reflect.Method; import java.lang.reflect.Parameter; public class GetParameterNames { public static void main(String[] args) throws NoSuchMethodException { // Get the Method object for aMethod() Method aMethod = Whatever.class.getMethod("aMethod", int.class); // Get the Parameter object for the method parameter Parameter[] parameters = aMethod.getParameters(); // Extract the parameter name from the Parameter object String parameterName = parameters[0].getName(); // Print the parameter name System.out.println(parameterName); } }
Pertimbangan:
Untuk pendekatan ini berfungsi, pengkompil Java mesti digunakan dengan argumen -parameters untuk membolehkan penjanaan nama parameter dalam fail kelas. Argumen ini boleh ditambah pada bendera pengkompil dalam JDK atau dalam konfigurasi binaan Maven.
Alternatif untuk Versi Java Lama:
Dalam versi Java sebelum 8, mendapatkan parameter kaedah nama secara langsung tidak disokong. Walau bagaimanapun, terdapat perpustakaan pihak ketiga, seperti Perpustakaan Manipulasi Kod Byte ASM, yang menyediakan cara untuk meningkatkan kelas Java pada masa jalan dan mengakses maklumat ini.
Sumber Tambahan:
Atas ialah kandungan terperinci Bagaimana Anda Boleh Mendapatkan Nama Parameter Kaedah Menggunakan Refleksi Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!