Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

พิมพ์ Erasure ใน Java


เพื่อรองรับการเขียนโปรแกรมทั่วไป เช่นเดียวกับการตรวจสอบประเภทที่เข้มงวดยิ่งขึ้น 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' ซึ่งจะตรวจสอบว่ามีองค์ประกอบอยู่หรือไม่ จากนั้นจึงย้ายไปยังองค์ประกอบนั้น ผลลัพธ์จะถูกพิมพ์บนหน้าจอ