gpt4 book ai didi

java - 在方法中使用@SuppressWarnings 会产生编译错误

转载 作者:行者123 更新时间:2023-11-29 06:58:15 26 4
gpt4 key购买 nike

我有以下代码块:

     final Map<String, Double> map;
if (cond) {
int currency = 44;
@SuppressWarnings("unchecked")
map = (Map<String, Double>)objectA.get();
}else {
map= ....}
objectA

get() 方法返回一个原始的 HashMap(我知道在那里使用泛型会很好,我的问题是已解决,但我无法更改该类的代码)。如果我删除 @SuppressWarnings("unchecked") 行,显然我会收到 TypeSafety 警告。但是当我在下面的分配行中添加抑制警告时,我收到以下错误:

map cannot be resoved to a type!

谁能解释一下为什么?

最佳答案

编译器认为 @SuppressWarnings("unchecked") 是一个表达式并且没有终端运算符 ;。但是,如果添加它,表达式将无效。

您必须在变量定义之前注释方法使用注释:

@SuppressWarnings("unchecked") 
public void method() {
@SuppressWarnings("unchecked") final Map<String, Double> map;
if (cond) {
int currency = 44;
map = (Map<String, Double>)objectA.get();
}
}

请注意 javadoc建议:

As a matter of style, programmers should always use this annotation on the most deeply nested element where it is effective.

关于java - 在方法中使用@SuppressWarnings 会产生编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30232155/

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