Rumah > Java > javaTutorial > Bagaimanakah Saya Boleh Meluluskan Tatasusunan kepada Kaedah Argumen Pembolehubah dengan betul di Jawa?

Bagaimanakah Saya Boleh Meluluskan Tatasusunan kepada Kaedah Argumen Pembolehubah dengan betul di Jawa?

Linda Hamilton
Lepaskan: 2024-12-12 18:30:24
asal
932 orang telah melayarinya

How Can I Properly Pass an Array to a Variable Argument Method in Java?

Melalukan Tatasusunan kepada Kaedah Argumen Pembolehubah dalam Java

Gambaran Keseluruhan

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.

Memahami Sintaks Varargs

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.

Contoh: Menghantar Array ke String.format

class A {
  private String extraVar;
  public String myFormat(String format, Object ... args){
    return String.format(format, extraVar, args);
  }
}
Salin selepas log masuk

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.

Penyelesaian: Menggunakan Tatasusunan Lain

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);
Salin selepas log masuk

Dalam ini kes, kaedah prepend menambah extraVar pada permulaan args dan mengembalikan tatasusunan baharu, yang kemudiannya boleh dihantar ke String.format.

Varargs Gotchas

Apabila bekerja dengan varargs, terdapat beberapa gotcha yang perlu diingat:

  • Lulus Null: Melepasi null sebagai satu-satunya hujah kepada parameter varargs boleh menghasilkan NullPointerException. Untuk mengelakkan ini, gunakan null sebagai elemen dalam tatasusunan atau hantar null kepada jenis varargs.
  • Menambah Argumen Tambahan: Jika anda perlu menghantar argumen tambahan kepada kaedah yang memerlukan tatasusunan sebagai argumen varargs, anda mesti mencipta tatasusunan baharu yang merangkumi tatasusunan sedia ada dan argumen tambahan.
  • Primitif Tatasusunan: Varargs tidak berfungsi dengan tatasusunan jenis primitif. Untuk menghantar tatasusunan primitif, anda mesti membalut setiap elemen ke dalam kelas pembalut yang sepadan (cth., int[] kepada Integer[]).

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!

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