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

Cara Buat Outlet untuk Pengawal Peta di Apl iOS anda - dummies

Cara Buat Outlet untuk Pengawal Peta di Apl iOS anda - dummies

Jika anda mahu menggunakan MapController untuk apl iOS anda, anda memerlukan sebuah saluran keluar. Dengan Pemilih peta anda dijaga, tiba waktunya untuk mencipta saluran supaya MapController mempunyai akses ke paparan Peta untuk memusatkan peta dan mempunyai paparan anotasi. Ikuti langkah berikut:

Bagaimana Membuat Seni Bina Aplikasi iOS - manisan

Bagaimana Membuat Seni Bina Aplikasi iOS - manisan

Senibina aplikasi adalah di mana anda akan bermula dengan pembangunan aplikasi iOS anda. Pada tahap asas, kebanyakan apl terdiri daripada komponen asas yang sama. Kebanyakan aplikasi terdiri daripada yang berikut: Model: Objek model merangkumi logik dan kandungan (data) aplikasi. Views: Kandungan data tidak berguna jika pengguna anda ...

Protein Diet Paleo dan Mengapa Haiwan Matter - manik

Protein Diet Paleo dan Mengapa Haiwan Matter - manik

Manusia, manusia gua dan manusia moden, adalah omnivora . Gaya hidup Paleo membina warisan makan daging. Ahli antropologi bersetuju bahawa nenek moyang kita yang terdahulu adalah pemakan daging, dan saintis menganggarkan bahawa gen kita adalah 99. 9 peratus sama dengan mereka pada masa itu. Daging menyediakan kita dengan protein, asid lemak penting, dan vitamin - sama seperti ...

Pilihan Editor

Bersukacita dengan Perspektif Hak - monyet

Bersukacita dengan Perspektif Hak - monyet

Tidak seperti binatang lain, mengenai pilihan! Anda boleh memilih untuk berbahagia. Anda boleh memilih untuk melihat kehidupan sebagai kaca separuh penuh (optimistik) atau kaca setengah kosong (pesimis). Semuanya datang kepada sama ada anda menentukan masalah sebagai cabaran atau krisis. Mempunyai perspektif yang betul adalah ...

Kebahagiaan: Tahu Kapan Rencana dan Kapan Bukan Untuk - patung

Kebahagiaan: Tahu Kapan Rencana dan Kapan Bukan Untuk - patung

Akhir-akhir ini, manusia memerlukan rancangan untuk semuanya. Adakah rancangan ini menjadikan anda lebih bahagia? Lebih kurang dan lebih sedikit orang boleh melalui hari tanpa BlackBerry. Ibu bapa merancang untuk pendidikan kolej anak-anak mereka apabila anak-anak berada di tadika. Ada perancang persaraan, perancang perjalanan, perancang perkahwinan, dan bahkan ...

Memutuskan apa jenis orangtua yang anda inginkan untuk mencapai kebahagiaan

Memutuskan apa jenis orangtua yang anda inginkan untuk mencapai kebahagiaan

Bagaimana membesarkan anak-anak anda tidak hanya menjejaskan betapa gembiranya mereka; ia memberi kesan kepada bagaimana mereka melakukan persembahan di sekolah, sama ada mereka mengambil merokok, bagaimana mungkin mereka akan mengalami kemurungan, dan sama ada mereka terlibat dalam tingkah laku seksual yang berisiko. Menurut ahli psikologi yang mengkaji hal semacam ini, terdapat empat gaya utama ...

Pilihan Editor

Rakaman Excel Macros dengan Rujukan Mutlak - dummies

Rakaman Excel Macros dengan Rujukan Mutlak - dummies

Mod rakaman lalai excel adalah rujukan mutlak. Apabila rujukan sel dalam formula adalah rujukan mutlak, ia tidak menyesuaikan secara automatik apabila formula disisipkan ke lokasi baru. Cara terbaik untuk memahami bagaimana konsep ini digunakan untuk makro adalah mencuba. Catat makro yang mengira baris ...

Merujuk kepada Nilai atau Rumusan dalam Sel Lain dalam Excel 2007 Formula - dummies

Merujuk kepada Nilai atau Rumusan dalam Sel Lain dalam Excel 2007 Formula - dummies

Menghubungkan formula adalah formula dalam Excel 2007 yang merujuk lokasi dalam lembaran kerja yang sama, buku kerja sama, atau bahkan buku kerja yang berbeza. Apabila anda mencipta formula pautan, ia membawa formula rumit atau asal ke lokasi baru supaya hasil dalam formula pengaudan tetap terikat secara dinamik kepada asal. Jika ...

Rakaman Excel Macros dengan Rujukan Relatif - dummies

Rakaman Excel Macros dengan Rujukan Relatif - dummies

Rujukan relatif dalam makro Excel bermakna relatif kepada sel yang sedang aktif . Oleh itu, berhati-hati dengan pilihan sel aktif anda - kedua-duanya apabila anda merakam rujukan makro relatif dan apabila anda menjalankannya. Pertama, buka Sample File. xlsx boleh didapati dalam talian. Kemudian, gunakan langkah-langkah berikut untuk merakam makro rujukan relatif: Pada ...