Satu pengantar:
Sebelum Javase 1.5, tanpa obat generik, "arbitrararisasi" parameter dicapai dengan merujuk objek tipe. Kerugian dari "arbitrararisasi" adalah bahwa konversi tipe pemeran eksplisit diperlukan, dan konversi ini mengharuskan pengembang untuk memprediksi tipe parameter aktual. Dalam hal kesalahan konversi tipe pemeran, kompiler mungkin tidak menimbulkan kesalahan, dan pengecualian hanya akan terjadi saat berjalan, yang merupakan risiko keamanan.
Keuntungan dari obat generik adalah bahwa mereka memeriksa keamanan tipe saat menyusun, dan semua gips otomatis dan implisit, meningkatkan tingkat penggunaan kembali kode.
2. Parameter generik:
Kelas gen <t> {private t ob; // mendefinisikan gen publik generik variabel gen publik (t ob) {this.ob = ob;} public t getob () {return ob;} public void setob (t ob) {this.ob = ob;} public void showType () {System.out.println ("Tipe aktual tis:" + () {System.out.println ("Tipe aktual dari t is:" + () {System.out.println ("Tipe aktual TERT:" TERTICE: " + {System.out.println (" Tipe aktual TE: "TIPE:" +. Genericparameter {public static void main (string [] args) {// Tentukan versi integer dari gen generik gen gen <integer> intob = gen baru <integer> (100); intob.showType (); int i = intob.getOb (); System.out.println ("value =" + + + i); System.out.println ("-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- keluaran:
Jenis T yang sebenarnya adalah: java.lang.integer
nilai = 100
-----------------------------------------------------------------------------------------------------------------------------
Jenis T yang sebenarnya adalah: java.lang.string
Nilai = halo Dylan!
3. Generik:
class GenericsFoo<T> {private T x;public GenericsFoo(T x) {this.x = x;}public T getX() {return x;}public void setX(T x) {this.x = x;}}public class GenericClass {public static void main(String args[]){GenericsFoo<String> strFoo=new GenericsFoo<String>("Hello Generik! "); Genericfoo <mouble> double = Genericsfoo baru <mouble> (double baru (" 33 ")); genericsfoo <POMPEST> objfoo = Genericsfoo baru <POMPERBITAS> (BARU Object ()); System.out.println ("strfoo.getx ="+strfoo.getx ()); System.out.println ("doufoo.getx ="+doufoo.getx ()); System.out.println ("objfoo.getx ="+objfoo.getx ()); keluaran:
strfoo.getx = halo generik!
doufoo.getx = 33.0
objfoo.getx=java.lang.object@1d0fafc
Generik empat-terbatas:
Impor java.util.arraylist; import java.util.collection; class collectionGenFoo <t memperluas koleksi> {private t x; public collectionGenfoo (t x) {this.x = x;} public t getx () {return x;} public void setx (t x) {this.x = x; {CollectionGenFoo <RrasrayList> listFoo = null; listFoo = collection baruFoo <SrArayList> (arrayList baru ()); collectionGenFoo <? Extends Collection> listFoo1 = null; listFoo1 = new collectionGenFoo <Rr arrayList> (arraylist baru ()); System.out.println ("Instantiation Success!");}}} keluaran:
Instantiasi berhasil!
Lima Metode Generik:
Public Class GenericFunction {public <t> void f (t x) {System.out.println (x.getClass (). getName ());} public static void main (string [] args) {genericfunction ea = genericfunction baru (); ea.f (""); ea.f (10); keluaran:
java.lang.string
java.lang.integer
java.lang.character
Fungsi generic
-----------------------------------------------------------------------------------------------------------------------------
Hadiah Dylan.
Meringkaskan
Di atas adalah semua konten dari artikel ini tentang penjelasan terperinci dari contoh -contoh umum di Java, saya harap ini akan membantu semua orang. Jika ada kekurangan, silakan tinggalkan pesan untuk menunjukkannya. Terima kasih teman atas dukungan Anda untuk situs ini!