![](/img/trans.png)
[英]How to avoid generics warnings when using “raw types” as static field / return type?
[英]How to avoid Eclipse warnings when using legacy code without generics?
我正在使用JSON.simple從Java生成JSON輸出。 但是每當我調用jsonobj.put(“this”,“that”)時,我在Eclipse中看到一個警告:
類型安全:方法put(Object,Object)屬於原始類型HashMap。 應該參數化對泛型類型HashMap的引用
干凈的修復是如果JSONObject是通用的,但由於它不是,我不能添加任何泛型類型參數來解決這個問題。 我想關閉盡可能少的警告,所以在許多方法中添加“@SuppressWarnings(”unchecked“)”是沒有吸引力的,但除了忍受警告之外我還有其他選擇嗎?
這是一個選項。 它有點難看,但允許您將抑制警告的范圍僅限於單個操作。
添加一個執行未選中的強制轉換的函數,並禁止對其執行警告:
@SuppressWarnings("unchecked")
private final static Map<Object,Object> asMap(JSONObject j)
{
return j;
}
然后你可以在沒有編譯警告的情況下調用它:
asMap(jsonobj).put("this", "that");
這樣,您可以確定不會抑制實際想要查看的任何警告。
您可以擁有每個項目的編譯器設置,並且可以將這些警告更改為忽略 。
編寫一些輔助方法或庫的包裝類。 僅將@SuppressWarnings("unchecked")
添加到這些幫助程序。 然后使用幫助程序執行與庫的交互。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.