[英]Cast Object to Map<?,?> without Unchecked cast warning
我正在開發一個需要傳遞對象的項目,我正在嘗試做的是將該對象像這樣轉換回 Map。
Object o = new Map<String, String>();
Map<String,String> map = (Map<String,String>)o;
這似乎按預期工作,但我得到了
類型安全:從 Object 到 Map 的未經檢查的強制轉換
我知道我可以使用@SuppressWarnings("unchecked")
,但我更願意以沒有警告的方式使用它。 這將如何完成?
您可以檢查,如果o
是Map
與o instanceof Map
。 但是你不能檢查通用參數<String,String>
,因為它們在運行時被刪除了。 因此,即使使用instanceof
檢查,您也會收到警告。
由於Map
擴展了Object
,您可以只使用Map
引用而不是向下轉換為Object
。
所以在你的代碼中,只需替換
Object o = new Map<String, String>();
和
Map<String, String> o = new Map<>();
然后你的第二行(未經檢查的演員)就變得不必要了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.