เพื่อรองรับการเขียนโปรแกรมทั่วไป เช่นเดียวกับการตรวจสอบประเภทที่เข้มงวดยิ่งขึ้น Java จะใช้ typeerasure
-
พารามิเตอร์ประเภททั้งหมดในประเภททั่วไปจะถูกแทนที่ด้วยขอบเขต (ถ้าไม่มีขอบเขต) หรือประเภทวัตถุ วิธีนี้ bytecode จะมีเฉพาะคลาส เมธอด และอินเทอร์เฟซ
-
พิมพ์ casts เพื่อรักษาประเภท
-
มีการสร้างเมธอดบริดจ์เพื่อรักษาแนวคิดความหลากหลายในประเภท Extendedgeneric
ตัวอย่าง
import java.io.PrintStream; import java.util.*; public class Demo{ public Demo(){ } public static void main(String args[]){ List my_list = new ArrayList(); my_list.add("Hi there"); String my_str; for (Iterator iter = my_list.iterator(); iter.hasNext(); System.out.println(my_str)) my_str = (String)iter.next(); } }
ผลลัพธ์
Hi there
คลาสที่ชื่อว่า Demo มีคอนสตรัคเตอร์ที่ไม่มีเนื้อหาที่กำหนดไว้ภายใน ในฟังก์ชั่นหลัก รายการอาร์เรย์ใหม่จะถูกสร้างขึ้น และเพิ่มองค์ประกอบเข้าไปโดยใช้ฟังก์ชัน 'เพิ่ม' Aniterator ถูกกำหนดและสตริงถูกกำหนด ตัววนซ้ำจะวนซ้ำองค์ประกอบในสตริงโดยใช้ฟังก์ชัน 'hasNext' ซึ่งจะตรวจสอบว่ามีองค์ประกอบอยู่หรือไม่ จากนั้นจึงย้ายไปยังองค์ประกอบนั้น ผลลัพธ์จะถูกพิมพ์บนหน้าจอ