我正好碰上了一塊代碼蒙上a List
到a MultiKeyMap
調用,需要一個MultiKeyMap
作爲參數的方法:爲什麼在將List轉換爲MultiKeyMap時不會收到編譯錯誤?
someMethod ((MultiKeyMap) myList);
凡myList
是List
。
當然,它在運行時會拋出ClassCastException
。爲什麼它沒有顯示編譯錯誤或至少一個警告「類型安全:未檢查的投射」,因爲當試圖將Collection
轉換爲Map
?兩種類型都沒有共同之處。
如果您嘗試使用數組列表而不是列表(接口),您會得到預期的編譯器錯誤。 – Perception 2013-02-21 12:55:39