簡體   English   中英

避免在參數化類型轉換中未選中的強制轉換警告

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

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