亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

必要時插入類型轉換以保持類型安全

必要時插入類型轉換以保持類型安全

森林海 2022-07-27 20:44:27
作為關于泛型類型擦除的官方教程,這句話讓我很困惑。當類型轉換插入可能準確發生時?我嘗試了一些簡單的泛型用法并javap -c a.class用于檢查字節碼,但似乎沒有像我預期的那樣插入類型轉換。所謂的重復更多的是關于使用類型轉換以確保正確的橋接方法polymorphism,而我想知道第二個語句的確切含義。必要時插入類型轉換以保持類型安全??梢蕴峁┤魏卫觼碜C明它嗎?
查看完整描述

1 回答

?
鴻蒙傳說

TA貢獻1865條經驗 獲得超7個贊

最后,我認為Jon Skeet 的回答消除了困惑。


當使用泛型時,它們被轉換為編譯時檢查和執行時強制轉換。


當我們嘗試編譯a.java和反編譯時a.class,我們會看到魔法(編譯器幫助自動插入類型轉換)。


    List<String> list = new ArrayList<>();

    list.add("hell");

    out.println(list.get(0));

反編譯后:


    ArrayList var3 = new ArrayList();

    var3.add("hell");

    System.out.println((String)var3.get(0));

Using Legacy Code in Generic Code 來自官方通用教程:


...只要生成的代碼類型不正確,就會插入適當類型的強制轉換...


查看完整回答
反對 回復 2022-07-27
  • 1 回答
  • 0 關注
  • 101 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號