Melalukan Array sebagai Argumen kepada Kaedah dengan Argumen Boleh Ubah dalam Java
Masalah
Matlamatnya adalah untuk mencipta kaedah Java yang mengambil pelbagai hujah dan menghantar setiap hujah individu kepada kaedah dengan hujah berubah-ubah. Walau bagaimanapun, masalah timbul apabila tandatangan kaedah mengisytiharkan Objek[] dan bukannya argumen berasingan, yang membawa kepada tatasusunan dianggap sebagai argumen tunggal.
Penyelesaian
Ya , adalah mungkin untuk menghantar tatasusunan sebagai argumen kepada kaedah dengan argumen boleh ubah dalam Java. Ini dimungkinkan oleh gula sintaksis T... yang bersamaan dengan T[].
Contoh Kod
Contoh berikut menggambarkan cara untuk mencapai ini:
public static String ezFormat(Object... args) { String format = new String(new char[args.length]) .replace("", "[ %s ]"); return String.format(format, args); } public static void main(String... args) { System.out.println(ezFormat("A", "B", "C")); // prints "[ A ][ B ][ C ]" }
Varargs Gotchas
Melalui Null
Berhati-hati bahawa menghantar null kepada parameter varargs boleh mengakibatkan tingkah laku yang tidak dijangka. Untuk mengelakkan ralat, anda boleh menghantar null sebagai tatasusunan atau sebagai argumen tunggal.
Menambah Argumen Tambahan
Apabila menghantar tatasusunan kepada parameter varargs dan menambah argumen tambahan , adalah perlu untuk mencipta tatasusunan baharu yang memuatkan kedua-dua hujah tambahan dan tatasusunan asal elemen.
Melalui Tatasusunan Primitif
Varargs hanya berfungsi dengan jenis rujukan. Untuk menghantar tatasusunan primitif, tukarkannya kepada kelas pembalut yang sepadan (cth., int[] kepada Integer[]).
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Meluluskan Array sebagai Argumen kepada Kaedah Java dengan Argumen Pembolehubah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!