Rumah Kewangan Peribadi Pengaturcaraan Java: Semua tentang Generics - dummies

Pengaturcaraan Java: Semua tentang Generics - dummies

Video: Learn Python - Full Course for Beginners [Tutorial] 2024

Video: Learn Python - Full Course for Beginners [Tutorial] 2024
Anonim

Salah satu matlamat reka bentuk asli untuk Java adalah untuk menjaga bahasa semudah mungkin. Pemaju bahasa mengambil beberapa ciri yang tidak rumit dari C ++ dan melemparkannya ke luar tingkap. Hasilnya adalah bahasa yang elegan dan anggun. Sesetengah orang berkata bahasa itu terlalu ramping.

Jadi selepas beberapa tahun perbincangan dan pertengkaran, Java menjadi lebih rumit. Pada tahun 2004, Jawa mempunyai jenis enum, dipertingkatkan untuk gelung, import statik, dan beberapa ciri baru yang menarik. Tetapi yang paling dibincangkan mengenai ciri baru ialah pengenalan generik.

ArrayList people = new ArrayList ();

Penggunaan apa-apa seperti baru di Java 5. 0. Dalam Java gaya lama, anda akan menulis

ArrayList people = new ArrayList ();

Pada masa itu, ArrayList boleh menyimpan hampir apa sahaja yang anda mahu dimasukkan ke dalamnya - nombor, Akaun, Bilik, String … apa-apa. Kelas ArrayList sangat serba boleh, tetapi dengan kepelbagaian ini datang beberapa sakit kepala. Jika anda boleh meletakkan apa-apa ke dalam ArrayList, anda tidak dapat dengan mudah meramalkan apa yang anda akan keluar dari ArrayList.

Khususnya, anda tidak dapat dengan mudah menulis kod yang menganggap anda telah menyimpan jenis nilai tertentu dalam ArrayList. Berikut adalah contoh:

ArrayList things = new ArrayList (); perkara-perkara. tambah (Akaun baru ()); Akaun myAccount = perkara. dapatkan (0); // TIDAK MENGGUNAKAN INI. KOD YANG BURUK.

Dalam baris ketiga, panggilan untuk mendapatkan (0) merebut nilai terawal dalam koleksi barang. Panggilan untuk mendapatkan (0) baik-baik saja, tetapi pengkomputer mencetuskan tugasan percubaan ke myAccount. Anda mendapat mesej di baris ketiga yang mengatakan bahawa apa sahaja yang anda dapat dari senarai perkara tidak boleh dimasukkan ke dalam pembolehubah myAccount.

Anda dapat mesej ini kerana, pada masa pengkompil mencapai baris ketiga, ia telah lupa bahawa item yang ditambah pada baris kedua adalah jenis Akaun!

Pengenalan generik membetulkan masalah ini:

ArrayList things = new ArrayList (); perkara-perkara. tambah (Akaun baru ()); Akaun myAccount = perkara. dapatkan (0); // GUNAKAN INSTEAD KOD INI. KOD YANG BAIK.

Menambah di dua tempat memberitahu pengkompil bahawa perkara-perkara menyimpan akaun Contoh - tidak ada lagi. Oleh itu, dalam baris ketiga dalam kod sebelumnya, anda mendapat nilai dari koleksi benda. Kemudian, kerana perkara menyimpan hanya objek Akaun, anda boleh membuat myAccount merujuk kepada nilai baru itu.

Java 5. 0 menambah generik ke Java. Tetapi tidak lama selepas kelahiran Jawa 5. 0, pengaturcara melihat bagaimana kekok itu kod untuk generik boleh.Lagipun, anda boleh membuat generik dalam generik. ArrayList boleh mengandungi banyak array, masing-masing yang boleh menjadi ArrayList. Jadi anda boleh menulis

ArrayList  mess = new ArrayList  ();

Semua pengulangan dalam perisytiharan huru-hara ini memberikan pengaturcara sakit kepala! Untuk mengelakkan keburukan ini, versi Java 7 dan versi terkini mempunyai operator 999 berlian , . Pengendali berlian memberitahu Java untuk menggunakan semula apa sahaja perkara yang tidak rumit yang anda masukkan di bahagian sebelumnya dari perisytiharan generik.

Dalam contoh ini, memberitahu Java untuk menggunakan semula , walaupun anda menulis sekali sahaja. Berikut ialah kod Java 7 yang diselaraskan:

ArrayList  mess = new ArrayList ();

Di Jawa 7 dan seterusnya, anda boleh menulis salah satu pengisytiharan berunsur ini - perisytiharan asal, jahat dengan dua kejadian ArrayList [], atau pernyataan yang diperkemas (hanya sedikit jahat) dengan operator berlian dan hanya satu ArrayList [] kejadian.

Ya, kod diperkemas masih rumit. Tetapi tanpa semua pengulangan ArrayList [], kod diperkemas kurang rumit. Pengendali berlian Java 7 mengambil satu peluang untuk anda menyalin sesuatu dengan tidak betul dan mempunyai ralat besar dalam kod anda.

Pengaturcaraan Java: Semua tentang Generics - dummies

Pilihan Editor

Spotify Unlimited - dummies

Spotify Unlimited - dummies

Spotify Unlimited adalah cara yang cemerlang untuk mendengar semua muzik yang anda inginkan tanpa batas apa pun. Ia seperti orang yang istimewa yang membeli makanan dan minum sepanjang malam supaya anda tidak perlu risau mengenai bil tersebut. Ia seperti dapat tidur pada hujung minggu tanpa bimbang tentang kerja atau sama ada ...

Genre Spotify - dummies

Genre Spotify - dummies

Sama ada rock, tekno, pop, jazz, industri, indie pop, rakyat , klasik, logam berat, waltz, atau apa sahaja yang menarik minat anda, Spotify mempunyai genre, atau jenis muzik, dilindungi. Anda boleh mencari genre biasa dari dalam Spotify. Walaupun Spotify telah mengeluarkan senarai hampir 1,000 genre yang diketahui, tidak semua mereka akan menyampaikan ...

Mengemas kini Aplikasi Mudah Alih Spotify - dummies

Mengemas kini Aplikasi Mudah Alih Spotify - dummies

Apl mudah alih dikemas kini dengan keteraturan tanpa henti. Ia seolah-olah seperti ada setiap hari. Tetapi aplikasi sentiasa kerja sedang berjalan, dan Spotify adalah satu syarikat yang sentiasa mencari untuk berkembang dan meningkatkan produknya. Aplikasi juga dikemas kini untuk memperbaiki pepijat kecil dan kadang-kadang lebih serius. Tidak lama selepas masa lama ditunggu-tunggu ...

Pilihan Editor

Cara Menggunakan Fail dan Alat Capaian Pantas dalam Access 2016 - dummies

Cara Menggunakan Fail dan Alat Capaian Pantas dalam Access 2016 - dummies

Jika anda 'semula segar daripada menggunakan versi sebelum Office 2007 (XP dan sebelumnya), anda akan lega untuk melihat tab Fail dalam Akses 2016. Pengguna Office 2007 kehilangan perkataan biasa dalam antara muka versi itu, kemudian digantikan oleh butang Office , dengan tiada perkataan "Fail" yang menghiburkan. Fail perkataan datang kembali pada tahun 2010, ...

Cara menjalankan Wizard Pertanyaan di Access 2016 - dummies

Cara menjalankan Wizard Pertanyaan di Access 2016 - dummies

Dengan Access 'Query Wizard, maklumat jadual dan medan, dan Wizard Kueri Mudah menjaga hal-hal lain. Begini cara anda membuat pertanyaan: Di atas sekeping kertas, letakkan data yang anda inginkan dalam hasil pertanyaan anda. Permintaan mengembalikan lembaran data (tajuk lajur yang diikuti oleh baris data), jadi buat ...

Cara menjalankan Wizard Pertanyaan di Access 2013 - dummies

Cara menjalankan Wizard Pertanyaan di Access 2013 - dummies

Dengan Access 'Query Wizard, maklumat jadual dan medan, dan Wizard Kueri Mudah menjaga hal-hal lain. Berikut adalah cara anda membuat pertanyaan:

Pilihan Editor

10 Avuncular Cadangan untuk Word 2016 - dummies

10 Avuncular Cadangan untuk Word 2016 - dummies

Anda mungkin akan menghabiskan banyak masa dengan Word 2016. Jadi , mengapa tidak menggunakan semua helah perdagangan? Berikut adalah sepuluh perkara nasihat pemproses kata yang mesra dan berguna. Simpan kertas pencetak, toner, dan bekalan yang berguna Pejabat elektronik adalah mitos. Bersama dengan pemproses perkataan anda, anda memerlukan bekalan pejabat dunia sebenar. ...

Secara automatik Isi Kata dengan Word 2003 AutoText - dummies

Secara automatik Isi Kata dengan Word 2003 AutoText - dummies

Ciri AutoTeks dalam Word 2003 secara automatik selesai menulis perkataan bahawa anda telah mula mengeja. Katakanlah bahawa anda sedang menulis Novel Besar Amerika Syarikat yang akan memaparkan Christopher sebagai wira anda. Daripada mengeja Christopher berkali-kali, anda hanya menaip beberapa huruf nama dan kotak pop timbul. Ia mengatakan: Christopher: (Tekan ENTER untuk Masukkan). ...

Dasar File Menu Word 2013 - dummies

Dasar File Menu Word 2013 - dummies

Di Word 2013, mengklik tab File membuka menu Fail, dikenali sebagai pandangan Backstage. Paparan belakang pentas menyediakan akses kepada arahan yang ada kaitan dengan fail data yang anda bekerjasama - perkara seperti menyimpan, membuka, mencetak, menghantar, dan menyemak sifatnya. Untuk meninggalkan pandangan Backstage, klik beberapa tab lain atau tekan ...