如果我聲明一個列表「myList」,我碰巧知道它只包含字符串,我可以毫不費力地將它轉換爲列表,實際上在後臺將列表轉換爲一串字符串?泛型如何工作Java
List myList = new ArrayList();
List<String> myStringList = (List<String>) myList;
如果我創建列表作爲對象的名單我會假設同樣適用,但我不能再施放此回字符串列表,究竟是什麼原因呢?
List<Object> myObjList = new ArrayList<Object>();
List<String> myStringList = (List<String>) myObjList; // Can't do this!
如果您添加了示例代碼 – awksp
,它可能會有所幫助記住,泛型應該提供*保證*,表示您的代碼是類型安全的。你的第二個例子不允許類型安全的代碼,所以它是不允許的。第一個代碼示例涉及完全跳過這些檢查的原始類型。 – awksp