Komputer, Pengaturcaraan
Java Generik: penerangan dan kaedah
Bermula dengan kemunculan bahasa Jawa telah melalui banyak perubahan, yang sudah pasti membawa detik-detik yang positif dalam fungsinya. Salah satu perubahan yang ketara adalah pengenalan Java Generik atau generalisasi. fungsi ini bukan sahaja menjadikan bahasa yang lebih fleksibel dan serba boleh, tetapi juga lebih selamat dari segi membawa jenis data.
Hakikatnya adalah bahawa sebelum pengenalan generik kod generik Java boleh diwujudkan, bukan sahaja dari segi Objek rujukan jenis. Pautan tersebut boleh diberikan apa-apa objek. Lagipun, kelas di Jawa yang tersirat waris kelas Objek. Walau bagaimanapun, pendekatan ini adalah sumber yang berpotensi untuk banyak kesilapan yang berkaitan dengan jenis sekuriti dalam penukaran jelas objek dari Objek jenis sasaran. Apabila menggunakan generalisasi semua acuan dilakukan secara tersirat dan secara automatik, menghapuskan walaupun potensi untuk kesilapan.
Java Generik: huraian dan contoh
Mari kita mempertimbangkan contoh yang mudah untuk permohonan generalisasi ke kelas biasa dalam rajah di bawah. Dan kemudian meneruskan untuk pemeriksaan terperinci semua perihal tersirat dan nuansa Jawa Generik.
Memberi perhatian kepada cara di mana pengisytiharan kelas berlaku Pair. Sejurus selepas nama kelas, kurungan sudut terbuka, yang menunjukkan huruf T. Ia adalah sejenis pengisi, yang dalam proses mewujudkan contoh kelas ini akan digantikan dengan jenis tertentu. Ia kelihatan seperti berikut: Pasangan
Nota: bermula dengan versi kelapan Java, dengan menyatakan jenis sasaran apabila mengisytiharkan kurungan sudut rujukan dalam pembina boleh dibiarkan kosong. Jadi contoh boleh ditulis semula seperti di atas: Pasangan
Apabila kelas diisytiharkan sedemikian rupa, maka dalam tubuhnya bukannya jenis tertentu bidang, pautan, objek dikembalikan oleh kaedah yang anda boleh menggunakan surat itu. Sejak T apabila mewujudkan kelas objek digantikan dengan jenis tertentu, bidang pertama dan kedua dalam kes ini akan menjadi jenis Integer itu.
Berikutan logik hujah-hujah dan firstItem secondItem, yang disebut pembina yang sesuai juga mestilah jenis Integer atau subkelas. Jika anda cuba untuk menghantar jenis data yang berbeza daripada apa yang dinyatakan semasa membuat objek, pengkompil tidak akan membiarkan kesilapan ini. Oleh itu, hujah-hujah pembina apabila objek adalah seperti berikut: Pasangan
Umum dengan beberapa parameter jenis kelas
Dalam kelas umum juga boleh mengisytiharkan pelbagai parameter jenis yang dinyatakan dalam kurungan sudut dengan koma. Direka semula dengan satu kes Pasangan kelas dibentangkan di bawah.
Seperti yang anda lihat, apabila anda membuat contoh kelas ini dalam kurungan sudut harus menunjukkan jumlah yang sama jenis sebagai parameter. Jika anda biasa dengan jenis struktur data seperti Peta, anda boleh melihat bahawa ia menggunakan sebenarnya prinsip yang sama. Di sana, hujah pertama menetapkan jenis utama, dan kedua - jenis nilai. Harus diingat bahawa jenis dihantar apabila hujah objek boleh bertindih. Sebagai contoh, iklan berikut Pasangan kelas contoh sememangnya betul: Pasangan
Beberapa ciri generalisasi
Sebelum pergi lagi, ia harus diperhatikan bahawa pengkompil Java tidak mewujudkan pelbagai versi Pasangan kelas. Malah, dalam proses menyusun jenis umum semua maklumat yang dipadamkan. Sebaliknya, anda membawa jenis yang sesuai, mewujudkan versi khas kelas Pasangan itu. Walau bagaimanapun, dalam program ini masih hanya versi generik kelas. Proses ini dipanggil di Jawa pembersihan jenis Generik.
Ambil perhatian satu titik penting. Pautan ke versi kelas generik java yang sama tidak boleh menunjukkan satu objek yang sama. Yang, katakan kita mempunyai dua pautan: Pasangan
Sekatan ke atas kelas generik
Ia adalah penting untuk mengetahui bahawa generalisasi boleh digunakan hanya untuk rujukan jenis, iaitu untuk menghantar parameter generik java hujah kelas perlu menjadi jenis kelas. Jenis-jenis yang mudah, seperti, misalnya, double atau panjang, tidak boleh dipindahkan. Dalam erti kata lain, garis berikut Pasangan pengisytiharan kelas tidak dibenarkan: Pasangan
Satu lagi had yang serius adalah ketidakupayaan untuk mewujudkan satu contoh jenis parameter. Sebagai contoh, baris berikut akan menyebabkan ralat kompilasi: T pertama = T baru (). Ini adalah jelas, kerana anda tidak tahu terlebih dahulu sama ada hujah meluluskan kelas penuh atau abstrak, atau antara muka. Begitu juga dengan mewujudkan tatasusunan.
jenis terhad
Selalunya terdapat situasi apabila ia adalah perlu untuk menghadkan senarai jenis yang boleh diluluskan sebagai hujah ke Jawa kelas generik. Biarlah kita menganggap bahawa dalam Pair kelas kami, kami mahu untuk merangkumi hanya nilai berangka bagi operasi matematik lanjut mengenai mereka. Untuk melakukan ini kita perlu menentukan had atas jenis parameter. Ia direalisasikan melalui suatu iklan superclass mewarisi semua hujah-hujah yang diluluskan dalam kurungan sudut. Ia akan kelihatan seperti berikut: Kelas Pasangan
Ini adalah satu majlis yang sama. apa-apa sekatan yang sering digunakan untuk menyediakan parameter jenis keserasian dalam satu kelas yang sama. Pertimbangkan contoh dalam kelas Pair kami: Kelas Pasangan
Mengehadkan "bawah" adalah dengan cara yang sama, tetapi bukan dengan perkataan meliputi mengeja perkataan super. Bahawa kelas diklasifikasikan Pasangan
kaedah Java generik dan pengeluar
Di Jawa, generalisasi boleh tidak digunakan hanya untuk kelas-kelas, tetapi juga kaedah. Sebagai contoh, kaedah generik boleh diisytiharkan di dalam kelas biasa.
Seperti yang dapat dilihat dalam rajah di atas, kaedah iklan umum yang ada masalah besar. Mencukupi sebelum jenis pulangan kaedah untuk meletakkan kurungan sudut dan menentukan parameter jenis di dalamnya.
Jika segala-galanya dilakukan sama dengan pembina:
tanda kurung sudut dalam kes ini diletakkan di hadapan nama pereka bentuk, kerana dia tidak mempunyai nilai pulangan. Hasil daripada kedua-dua program akan:
integer
string
Similar articles
Trending Now