簡體   English   中英

將對象投射到地圖<?,?>沒有未經檢查的強制轉換警告

[英]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") ,但我更願意以沒有警告的方式使用它。 這將如何完成?

您可以檢查,如果oMapo 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM