Ralat yang tidak dijangka mungkin berlaku apabila melebihkan kaedah yang menggunakan argumen panjang berubah-ubah.
Ralat ini selalunya melibatkan kekaburan, di mana panggilan kaedah mungkin samar-samar disebabkan oleh beban berlebihan.
Atur cara berikut menggambarkan contoh panggilan samar-samar kepada kaedah varargs yang terlebih beban.
Atur cara menunjukkan beban berlebihan kaedah vaTest() yang betul, tetapi tidak akan disusun kerana panggilan vaTest() yang tidak jelas;.
Panggilan vaTest(); boleh ditafsirkan sebagai vaTest(int...) atau vaTest(boolean...), mengakibatkan kekaburan.
vaTest void statik(int... v) { // ...
vaTest void statik(int n, int... v) { // ...
Panggilan vaTest(1) boleh ditafsirkan sebagai vaTest(int...) atau vaTest(int, int...), menjadikannya samar-samar.
Dalam kes kekaburan, anda mungkin perlu menggunakan nama kaedah yang berbeza atau menyemak kod untuk mencari penyelesaian yang lebih jelas.
Atas ialah kandungan terperinci Varargs dan kekaburan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!