首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Java 每日一題:20161107 - 泛型數組創建的編譯錯誤分析

     編輯:Java 綜合教學

Java 每日一題:20161107 - 泛型數組創建的編譯錯誤分析

今天的題目考察的是 Java 泛型與數組的交互限制。請看以下代碼片段:

package Nov2016;
import java.util.List;

public class Ques1107 {
    public static void main(String[] args) {
        List<String>[] list = new List<String>[];
    }
}

問題: 主程序能否正常編譯通過?

答案與解析

答案:無法編譯通過。

在 Java 中,不能創建參數化類型的數組。即 `new List<String>[]` 是非法的。這是因為數組在運行時保留類型信息(具體化),而泛型通過類型擦除實現,兩者機制衝突。若允許這樣做,會破壞類型安全,導致運行時出現 ClassCastException 而編譯器無法檢測。

正確的做法是使用集合類(如 List<List<String>>)或使用 @SafeVarargs 註解的可變參數方法來模擬類似需求。

更多每日一題請關注公眾號或簡書專欄「Java每日一題」,歡迎訂閱交流進步。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved