Kaedah hujah pembolehubah (varargs) membolehkan anda menghantar bilangan argumen yang sewenang-wenangnya kepada suatu kaedah. Walau bagaimanapun, apabila menghantar tatasusunan sebagai argumen kepada kaedah varargs, ia mungkin tidak berkelakuan seperti yang diharapkan kerana tatasusunan dianggap sebagai satu argumen, bukan sebagai argumen individu.
Dalam Java, parameter varargs diisytiharkan menggunakan elipsis (...) selepas jenis data, seperti String ... args dalam kaedah myFormat. Sintaks ini menunjukkan bahawa parameter terakhir dalam tandatangan kaedah boleh menerima satu atau lebih argumen daripada jenis yang ditentukan.
class A { private String extraVar; public String myFormat(String format, Object ... args){ return String.format(format, extraVar, args); } }
Dalam contoh ini, kaedah myFormat mengambil bilangan argumen yang berubah-ubah. Walau bagaimanapun, apabila memanggil String.format(format, extraVar, args), tatasusunan args akan dianggap sebagai argumen tunggal dan bukannya argumen berasingan.
Memandangkan anda mahu setiap elemen dalam args untuk dihantar sebagai hujah individu, anda boleh mencipta tatasusunan baharu yang termasuk extraVar tambahan.
String[] newArgs = prepend(args, extraVar); return String.format(format, newArgs);
Dalam ini kes, kaedah prepend menambah extraVar pada permulaan args dan mengembalikan tatasusunan baharu, yang kemudiannya boleh dihantar ke String.format.
Apabila bekerja dengan varargs, terdapat beberapa gotcha yang perlu diingat:
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Meluluskan Tatasusunan kepada Kaedah Argumen Pembolehubah dengan betul di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!