java - 分配给实例变量时的 SuppressWarnings 注释
问题描述
我正在使用(并且无法更改)的库有一个原始Map
返回给我,所以我想禁止有关未经检查的演员表的警告。不过,当我在实例变量上尝试它时,它似乎不起作用。
我列举了下面的案例,为了简洁起见,将它们组合成一个代码示例,即使我单独测试了它们。
class Foo {
@SuppressWarnings("unchecked") //doesn't work
private Map<String, String> map;
@SuppressWarnings("unchecked") //works
private void doSomething() {
@SuppressWarnings("unchecked") //syntax error
this.map = Library.getMap();
}
}
我可以抑制警告的最具体的位置是什么?我宁愿不在整个方法上这样做,但这是它目前对我有用的唯一地方。
解决方案
您希望在出现问题时抑制警告,问题在doSomething
内部
this.map = Library.getMap();
您不能抑制分配本身,因此您需要转到外部范围,即方法或类
作为风格问题,程序员应该始终在最有效的嵌套元素上使用此注释。如果您想在特定方法中抑制警告,您应该注释该方法而不是它的类。
如果您的分配将在初始化中,您可以抑制它:
@SuppressWarnings("unchecked" )
private Map<String, String> map = Library.getMap();
推荐阅读
- java - 使用 findViewById 初始化对象后直接出现 java.lang.NullPointerException
- azure - 在 Azure 云服务中发送网格电子邮件失败
- powershell - 如何以交互方式在 Powershell 中执行远程命令?
- c++ - 当我的数组太大时出现分段错误
- java - 如何插入MongoDB数组
- javascript - 是否可以使用 JavaScript 检测未知的 CSS 属性或无效的 CSS 属性值
- javascript - 如何在 AdonisJs 中添加多个身份验证器
- mysql - 对多列进行组合和求和
- java - 我在使用 .compareTo 函数时遇到问题
- docker - Kubernetes 和 Docker 效率