[英]Avoid Unchecked Casting Warnings in Parameterized Type Casting
在對參數化類型對象進行類型轉換時是否可以避免unchecked
警告? 例如,下面是我面臨的實際情況, var1
的類型是JComboBox<RandomType>
我希望將它存儲在Map
然后檢索它,迫使我進入以下情況。
JComboBox<RandomType> var1 = new JComboBox<RandomType>();
Object varRaw = var1;
JComboBox<RandomType> var2 = (JComboBox<RandomType>) varRaw;
JComboBox<RandomType> var3;
if (JComboBox.class.isAssignableFrom(varRaw.getClass())) {
var3 = JComboBox.class.cast(varRaw);
}
常規演員表和條件演員表都會產生相同的警告。
在不必使用@SuppressWarnings
注釋的情況下,甚至可以避免在這種情況下發出警告嗎?
我的答案是否定的,沒有更好的選擇(我知道)。 但我並不是一個權威的來源,並且似乎難以證明每個其他選擇都不會出現“錯誤”警告。
我已經到了假設周圍有一些警告的較小的邪惡(是的@SupressWarnings unchecked
但我想知道是否有值得注意的事情)。 出於同樣的原因,我會對javac -Xlint:unchecked
的非標准選項javac -Xlint:unchecked
其他消息來源還表示,在所有情況下都不可能抑制未經檢查的警告(特別是在處理不完全適應仿制葯的圖書館時)。 例如,在這個泛型教程中 ,作者說
是否有可能消除所有“未經檢查”的警告? - 幾乎
然后她進入了一些不堪重負的技術解釋。 因此,我不知道她所說的內容是否可以證明是什么。
我只知道我無法證明獨角獸不存在。 但如果我沒有注意到任何人實際登記他們的存在,我認為他們沒有。 這是可靠性 ,只是采取這個邪惡的技術問題,而不是愚蠢的獨角獸。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.