Dalam bidang pembangunan perisian, adalah mungkin untuk menghadapi senario di mana berbilang kelas berkongsi nama yang sama. Ini boleh menjadi satu cabaran apabila cuba mengimport kelas ini ke dalam projek Java. Untuk memahami situasi ini, mari kita periksa coretan kod berikut:
import java.util.Date; import my.own.Date; class Test { public static void main(String[] args) { // I want to choose my.own.Date here. How? // I want to choose util.Date here. How? } }
Kod ini cuba mengimport dua kelas bernama "Tarikh" daripada pakej yang berbeza: satu daripada pakej java.util dan satu lagi daripada my. pakej sendiri. Walau bagaimanapun, persoalan timbul: bagaimanakah kita boleh memilih secara selektif antara kelas ini dalam kelas Ujian?
Terdapat beberapa pendekatan untuk menyelesaikan konflik nama ini:
1. Gunakan Nama Kelas Layak Sepenuhnya:
Satu penyelesaian mudah ialah menggunakan nama kelas yang layak sepenuhnya, yang termasuk nama pakej, apabila merujuk kelas. Contohnya:
java.util.Date javaDate = new java.util.Date(); my.own.Date myDate = new my.own.Date();
Kaedah ini dengan jelas menyatakan kelas yang anda ingin gunakan, menghapuskan sebarang kekaburan.
2. Tinggalkan Penyata Import:
Sebagai alternatif, anda boleh menghapuskan penyata import sama sekali dan kelas rujukan dengan nama yang layak sepenuhnya. Walaupun ini berfungsi, ia boleh membawa kepada kod bersepah, terutamanya dalam senario dengan pelbagai pakej.
Test.main(args) // ***NOT RECOMMENDED*** Calls the main method in this class java.lang.System.out.println("Hello, world!"); // Prints "Hello, world!"
Walaupun secara teknikalnya mungkin untuk mempunyai kelas dengan nama yang sama, amalan ini biasanya berkecil hati. Dalam kebanyakan kes, adalah lebih baik untuk menggunakan nama yang berbeza untuk mengelakkan kemungkinan kekeliruan dan ralat. Jika menggunakan kelas dengan nama yang sama tidak dapat dielakkan, adalah penting untuk membezakannya dengan jelas, sama ada melalui konvensyen penamaan atau dokumentasi.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Konflik Nama Apabila Mengimport Kelas dengan Nama Pendua di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!