簡體   English   中英

如何在沒有泛型的情況下使用遺留代碼時避免使用Eclipse警告?

[英]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.

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