Rumah > Java > javaTutorial > Bagaimanakah Java Menyelesaikan Kaedah Terlalu Beban Apabila Hujah Null Diluluskan?

Bagaimanakah Java Menyelesaikan Kaedah Terlalu Beban Apabila Hujah Null Diluluskan?

DDD
Lepaskan: 2024-12-03 07:36:09
asal
370 orang telah melayarinya

How Does Java Resolve Overloaded Methods When a Null Argument is Passed?

Resolusi Lebihan untuk Argumen Null dalam Java

Apabila menghantar null sebagai hujah kepada kaedah terlebih beban di Java, adalah penting untuk memahami kaedah yang mana akan dipilih untuk seruan.

Pertimbangkan perkara berikut contoh:

JOptionPane.showInputDialog(null, "Write something");
Salin selepas log masuk

Dua kaedah terlampau beban JOptionPane.showInputDialog wujud:

  • showInputDialog(Induk komponen, mesej Objek)
  • showInputDialog(Mesej objek, Objek initialSelectionValue)

Antara lebihan beban ini yang manakah akan dipanggil apabila menghantar null sebagai parameter induk?

Jawapan:

Java menyelesaikan lebihan beban berdasarkan prinsip "kaedah yang paling spesifik." Dalam kes ini, kaedah yang paling khusus ialah:

showInputDialog(Component parent, Object message)
Salin selepas log masuk

Peraturan ini diperoleh daripada proses penyelesaian beban lampau, khususnya langkah yang dikenali sebagai "Menentukan Tandatangan Kaedah." Pengkompil mencari kaedah yang paling khusus yang boleh mengendalikan jenis input (dalam kes ini, null dan String).

Kaedah "lebih khusus" ditentukan berdasarkan sama ada seruan satu beban lampau boleh dihantar kepada yang lain tanpa menyebabkan ralat jenis masa kompilasi. Dalam contoh ini, apa-apa seruan lebihan pertama boleh dihantar kepada yang kedua tanpa ralat, tetapi bukan sebaliknya.

Oleh itu, apabila menghantar null ke JOptionPane.showInputDialog, lebihan beban dengan parameter induk Komponen (yang kaedah yang paling khusus) akan dipilih untuk seruan.

Atas ialah kandungan terperinci Bagaimanakah Java Menyelesaikan Kaedah Terlalu Beban Apabila Hujah Null Diluluskan?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan