บทนำหนึ่ง:
ก่อน Javase 1.5 โดยไม่มียาชื่อสามัญ "การทำให้เป็นอันตราย" ของพารามิเตอร์สามารถทำได้โดยการอ้างอิงวัตถุประเภท ข้อเสียของ "การทำให้เป็นอันตราย" คือจำเป็นต้องมีการแปลงประเภทการหล่ออย่างชัดเจนและการแปลงนี้จำเป็นต้องมีนักพัฒนาซอฟต์แวร์ในการทำนายประเภทพารามิเตอร์จริง ในกรณีที่มีข้อผิดพลาดในการแปลงประเภทการหล่อคอมไพเลอร์อาจไม่แจ้งข้อผิดพลาดและข้อยกเว้นจะเกิดขึ้นก็ต่อเมื่อทำงานซึ่งเป็นความเสี่ยงด้านความปลอดภัย
ข้อได้เปรียบของยาสามัญคือพวกเขาตรวจสอบประเภทความปลอดภัยเมื่อรวบรวมและ casts ทั้งหมดเป็นไปโดยอัตโนมัติและโดยปริยายปรับปรุงอัตราการใช้รหัสซ้ำ
2. พารามิเตอร์ทั่วไป:
คลาส Gen <t> {ส่วนตัว t ob; // กำหนดตัวแปรสมาชิกทั่วไป Gen (t ob) {this.ob = ob;} สาธารณะ t getob () {return ob;} โมฆะสาธารณะ setob (t ob) {this.ob = ob; คลาส GenericParameter {โมฆะสาธารณะคงที่หลัก (สตริง [] args) {// กำหนดรุ่นจำนวนเต็มของ Gen Gen ทั่วไป Gen <Integer> intob = new gen <จำนวนเต็ม> (100); intob.showtype (); int i = intoB.getob (); system.out.println ( i); System.out.println ("-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- - เอาท์พุท:
ประเภทที่แท้จริงของ t คือ: java.lang.integer
ค่า = 100
-
ประเภทที่แท้จริงของ t คือ: java.lang.string
ค่า = สวัสดี Dylan!
3. ทั่วไป:
คลาส Genericsfoo <t> {ส่วนตัว t x; public genericsfoo (t x) {this.x = x;} สาธารณะ t getx () {return x;} โมฆะสาธารณะ setx (t x) {this.x = x;}} คลาสสาธารณะทั่วไป Generics! "); Genericsfoo <bould> doufoo = ใหม่ Genericsfoo <bould> (ใหม่ double (" 33 ")); Genericsfoo <Ojrop> OBJFOO = ใหม่ GenericsFoo <Ojrop> (ใหม่ Object ()); System.out.println ("strfoo.getx ="+strfoo.getx ()); system.out.println ("doufoo.getx ="+doufoo.getx ()); system.out.println ("objfoo.getx ="+objfoo.getx (); เอาท์พุท:
strfoo.getx = Hello Generics!
doufoo.getx = 33.0
objfoo.getx=java.lang.object@1d0fafc
ทั่วไปสี่ข้อ จำกัด :
นำเข้า java.util.arraylist; นำเข้า java.util.collection; collection collection genfoo <t ขยายคอลเลกชัน> {ส่วนตัว t x; คอลเลกชันสาธารณะ genfoo (t x) {this.x = x;} สาธารณะ t getx () {return x;} public void setx (t x) {this.x = x; {CollectionFoo <RarrayList> listfoo = null; listfoo = new CollectionFoo <RarrayList> (ใหม่ arrayList ()); CollectionGenFoo <? ขยายคอลเลกชัน> listfoo1 = null; listfoo1 = ใหม่คอลเลคชั่น genFoo <arrayList> (arrayList ใหม่ ()); System.out.println ("อินสแตนซ์ประสบความสำเร็จ!");}} เอาท์พุท:
อินสแตนซ์ประสบความสำเร็จ!
ห้าวิธีทั่วไป:
คลาสสาธารณะ GenericFunction {สาธารณะ <t> void f (t x) {system.out.println (x.getClass (). getName ());} โมฆะคงที่สาธารณะหลัก (สตริง [] args) {genericfunction ea = new genericfunction (""); e.f (10); เอาท์พุท:
java.lang.string
java.lang.integer
java.lang.character
เครื่องประดับ
-
Dylan นำเสนอ
สรุป
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้เกี่ยวกับคำอธิบายโดยละเอียดของตัวอย่างทั่วไปใน Java ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน หากมีข้อบกพร่องใด ๆ โปรดฝากข้อความไว้เพื่อชี้ให้เห็น ขอบคุณเพื่อนที่ให้การสนับสนุนเว็บไซต์นี้!