8
Java: ฉันจะได้รับตัวอักษรในชั้นเรียนจากประเภททั่วไปได้อย่างไร
โดยปกติแล้วฉันเคยเห็นคนใช้ตัวอักษรในชั้นเรียนเช่นนี้: Class<Foo> cls = Foo.class; แต่ถ้าเป็นประเภททั่วไปเช่นรายชื่อจะเป็นอย่างไร วิธีนี้ใช้ได้ผลดี แต่มีคำเตือนเนื่องจากรายการควรได้รับการกำหนดพารามิเตอร์: Class<List> cls = List.class ดังนั้นทำไมไม่เพิ่ม<?>? นี่ทำให้เกิดข้อผิดพลาดประเภทไม่ตรงกัน: Class<List<?>> cls = List.class ฉันคิดบางอย่างเช่นนี้จะทำงานได้ แต่นี่เป็นเพียงข้อผิดพลาดทางไวยากรณ์ธรรมดา ol: Class<List<Foo>> cls = List<Foo>.class ฉันจะได้รับClass<List<Foo>>แบบคงที่ได้อย่างไรเช่นใช้ตัวอักษรของชั้นเรียน? ฉันสามารถใช้@SuppressWarnings("unchecked")เพื่อกำจัดคำเตือนที่เกิดจากการใช้ List แบบไม่มีพารามิเตอร์ในตัวอย่างแรกClass<List> cls = List.classแต่ฉันไม่ต้องการ ข้อเสนอแนะใด ๆ