Java 中的 SuppressWarnings(“unchecked”)是什么?

有时在查看代码时,我看到许多方法指定注释:

@SuppressWarnings("unchecked")

这是什么意思?


答案 1

有时Java泛型只是不让你做你想做的事情,你需要有效地告诉编译器,你正在做的事情在执行时确实是合法的

当我嘲笑通用接口时,我通常会觉得这很痛苦,但还有其他例子。通常值得尝试找出一种避免警告而不是抑制它的方法(Java Generics FAQ在这里有所帮助),但有时即使有可能,它也会使代码变形得如此之大,以至于抑制警告更加整洁。在这种情况下,请始终添加解释性注释!

相同的泛型常见问题解答有几个关于此主题的部分,从“什么是'未检查'警告?”开始 - 它非常值得一读。


答案 2

它是一个注释,用于禁止显示有关未经检查的一般操作(不是异常)(如强制转换)的编译警告。它基本上意味着程序员不希望在编译特定代码时被告知他已经知道的这些。

您可以在此处阅读有关此特定注释的更多信息:

抑制警告

此外,Oracle 还提供了一些关于注释用法的教程文档:

附注

正如他们所说,

“当与泛型出现之前编写的遗留代码交互时,可能会发生'未选中'警告(在标题为泛型的课程中讨论过)。


推荐