Cara untuk menginisialisasi Daftar objek dalam Java?
Saya tidak dapat menginisialisasi Daftar seperti kode berikut:
List<String> supplierNames = new List<String>();
supplierNames.add("sup1");
supplierNames.add("sup2");
supplierNames.add("sup3");
System.out.println(supplierNames.get(1));
Saya menghadapi galat berikut:
Tidak instantiate jenis
Daftar<String>
Bagaimana saya bisa instantiate Daftar<String>
?
375
12
Jika anda memeriksa API untuk
Daftar
anda'll melihat itu mengatakan:Menjadi seorang
antarmuka
berarti tidak bisa dipakai (tidak adabaru Daftar()
mungkin).Jika anda memeriksa bahwa link, anda'll menemukan beberapa
kelas dia yang menerapkan
Daftar`:Mereka dapat menjadi contoh. Menggunakan link mereka untuk tahu lebih banyak tentang mereka, I. E: untuk mengetahui mana yang lebih cocok dengan kebutuhan anda.
3 paling sering digunakan orang-orang yang mungkin adalah:
Bonus: Anda juga dapat menurunkannya dengan nilai-nilai, dengan cara yang lebih mudah, menggunakan
Array
kelas
, sebagai berikut:Tapi catatan anda tidak diizinkan untuk menambahkan elemen ke dalam daftar itu, seperti's
fixed-size
.Bisa't instantiate sebuah antarmuka tetapi ada beberapa implementasi:
JDK2
JDK7
JDK8
JDK9
Plus ada banyak cara lain yang disediakan oleh perpustakaan lain seperti Jambu.
Daftar adalah Antarmuka, anda tidak instantiate sebuah Interface, karena interface adalah sebuah konvensi, metode apa yang harus anda kelas. Dalam rangka untuk instantiate, anda perlu beberapa realisasi(implementasi) dari antarmuka tersebut. Coba kode di bawah ini dengan sangat populer implementasi dari Daftar interface:
atau
Anda akan perlu menggunakan
ArrayList<String>
atau semacamnya.Daftar<String>
adalah sebuah antarmuka.Gunakan ini:
Daftar aplikasi antarmuka, dan anda tidak dapat menginisialisasi sebuah antarmuka. Instantiate sebuah melaksanakan kelas sebaliknya.
Seperti:
Dalam kebanyakan kasus, anda ingin sederhana
ArrayList
- sebuah implementasi dariDaftar
Sebelum JDK versi 7
JDK 7 dan kemudian anda dapat menggunakan diamond operator
Informasi yang ditulis di sini Oracle dokumentasi - Koleksi
Daftar hanya sebuah interface, definisi dari beberapa daftar generik. Anda perlu menyediakan sebuah implementasi dari daftar ini antarmuka. Dua yang paling umum adalah:
ArrayList - daftar dilaksanakan selama array
LinkedList - daftar dilaksanakan seperti rantai yang saling berhubungan dari unsur-unsur
Tergantung pada apa jenis Daftar yang ingin anda gunakan, sesuatu seperti
harus membuat anda pergi.
Daftar antarmuka, ArrayList merupakan salah satu implementasi dari Daftar antarmuka. Lebih lanjut implementasi yang mungkin lebih sesuai dengan kebutuhan anda dapat menemukan dengan membaca JavaDocs Daftar interface.
Jika anda hanya ingin membuat sebuah abadi
Daftar<T>
dengan hanya one objek di dalamnya, anda bisa menggunakan API ini:Info lebih lanjut: docs
Daftar adalah sebuah Antarmuka . Anda bisa menggunakan Daftar untuk menginisialisasi.
Ini adalah beberapa Daftar diimplemetasikan kelas,
Anda bisa menggunakan ini sebagai per kebutuhan anda. Ini masing-masing kelas memiliki fitur sendiri.
Hanya dalam kasus, salah satu yang masih berlama-lama di sekitar pertanyaan ini. Karena, aku melihat satu atau dua pengguna baru lagi mengajukan pertanyaan yang sama dan semua orang mengatakan itu , Tidak ada yang dapat anda't melakukan itu, Sayang kehati-hatian, Terlepas dari semua jawaban yang diberikan di sini, saya ingin memberikan Informasi tambahan - Ya, anda dapat benar-benar melakukan, Daftar list = new List(); Tapi pada biaya penulisan implementasi dari semua metode dari Interface. Gagasan ini tidak hanya Daftar list = new List(); tapi
..... dan Sebagainya (tidak Bisa menulis semua metode.)
Ini adalah contoh dari Anonim kelas. Yang benar ketika seseorang serikat , Tidak ada anda tidak bisa instantiate sebuah antarmuka, dan yang's benar. Tapi anda tidak pernah bisa mengatakan , Anda tidak BISA menulis List List = new List(); tapi, jelas anda dapat melakukan itu dan bahwa's keras pernyataan untuk membuat yang dapat Anda't melakukan.
Kami menciptakan soyuz-to untuk menyederhanakan 1 masalah: bagaimana mengkonversi
X
untukY
(misalnya,String
untukbilangan Bulat
). Membangun suatu objek adalah juga jenis konversi sehingga memiliki fungsi sederhana untuk membangunPeta
,Daftar
,Set
:``jawa impor io.thedocs.soyuz.untuk;
Daftar nama = untuk.daftar("John", "Fedor"); `` Silakan periksa ini - itu memiliki banyak fitur berguna lainnya