CodeGym /Kursus Java /Sintaks Java /Apakah generik?

Apakah generik?

Sintaks Java
Tahap , pelajaran
Tersedia

"Satu lagi topik yang menarik."

"Kejutan terus datang! Adakah hari lahir saya?"

"Hari ini, saya akan memberitahu anda tentang generik. Generik ialah jenis yang mempunyai parameter. Di Java, kelas kontena membolehkan anda menunjukkan jenis objek dalamannya."

"Apabila kami mengisytiharkan pembolehubah generik, kami menunjukkan dua jenis dan bukannya satu: jenis pembolehubah dan jenis data yang disimpannya."

"ArrayList ialah contoh yang baik. Apabila kita mencipta objek ArrayList baharu, adalah mudah untuk menunjukkan jenis nilai yang akan disimpan di dalam senarai ini."

Kod Penjelasan
ArrayList<String> list = new ArrayList<String>();
Buat pembolehubah ArrayList dipanggil list.
Tetapkan objek ArrayList kepadanya.
Senarai ini hanya boleh menyimpan objek String .
ArrayList list = new ArrayList();
Buat pembolehubah ArrayList dipanggil list.
Tetapkan objek ArrayList kepadanya. Senarai ini boleh menyimpan sebarang nilai .
ArrayList<Integer> list = new ArrayList<Integer>();
Buat pembolehubah ArrayList dipanggil list.
Tetapkan objek ArrayList kepadanya.
Senarai ini hanya boleh menyimpan Integerdan intnilai.

"Bunyinya sangat menarik. Terutamanya bahagian tentang menyimpan nilai apa-apa jenis ."

"Nampaknya hanya itu perkara yang baik. Pada hakikatnya, jika kita meletakkan rentetan ke dalam ArrayList dalam satu kaedah dan kemudian menjangkakan ia mengandungi nombor dalam kaedah lain, program itu akan ranap (berhenti dengan ralat)."

"Saya faham."

"Buat masa ini, kami tidak akan membuat kelas kami sendiri dengan parameter jenis. Kami hanya akan menggunakan yang sedia ada."

"Bolehkah mana-mana kelas menjadi parameter jenis, walaupun satu yang saya tulis?"

"Ya. Sebarang jenis kecuali jenis primitif. Semua parameter jenis mesti diwarisi daripada kelas Objek."

" Maksud anda saya tidak boleh menulis ArrayList<int>? "

"Memang, anda tidak boleh. Tetapi pembangun Java telah menulis kelas pembalut untuk setiap jenis primitif. Kelas ini mewarisi Object . Beginilah rupanya:"

Jenis primitif Kelas Senaraikan
int Integer ArrayList< Integer >
berganda berganda ArrayList< Double >
boolean Boolean ArrayList< Boolean >
char Perwatakan ArrayList< Aksara >
bait Bait ArrayList< Byte >

"Anda boleh dengan mudah menetapkan kelas primitif dan analognya (kelas pembalut) antara satu sama lain:"

Contoh
int a = 5;
Integer b = a;
int c = b;

Character c = 'c';  //the literal c is a char
char d = c;
Byte b = (byte) 77;  // The literal 77 is an int
Boolean isOk = true;  // the literal true is a boolean
Double d = 1.0d;  // The literal 1.0d is a double

"Bagus. Saya rasa saya akan cuba menggunakan ArrayList dengan lebih kerap."

Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION