gpt4 book ai didi

java - 在参数化类型转换中避免未经检查的转换警告

转载 作者:搜寻专家 更新时间:2023-11-01 03:50:52 25 4
gpt4 key购买 nike

是否有可能避免 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 非标准选项

其他消息来源还表示,不可能在所有情况下都禁止未经检查的警告(特别是在处理未完全适应泛型的库时)。例如在这个Generics tutorial作者说

Is it possible to eliminate all "unchecked" warnings? - Almost

然后她进行了一些让我不知所措的笨拙的技术解释。所以不知道她说的能不能证明什么。

我只知道我无法证明 unicorn 不存在。但是,如果我没有注意到任何人实际注册了他们的存在,那么我假设他们没有这样做是公平的。那是 Falsafiability , 只是解决这个邪恶的技术问题而不是愚蠢的 unicorn 。

关于java - 在参数化类型转换中避免未经检查的转换警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28822326/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com