@SuppressWarnings使用的正确姿势
正确 姿势 使用
2023-09-14 09:06:16 时间
@SuppressWarnings比较常见,理解和使用起来都很简单。
但是就这这个机会系统的整理一下。
通过源码可以看出,支持在类、属性、方法、参数、构造方法、本地变量上使用。
@SuppressWarnings注解的使用有三种:
- @SuppressWarnings(“unchecked”) [抑制单类型的警告]
- @SuppressWarnings(“unchecked”,“rawtypes”) [抑制多类型的警告]
- @SuppressWarnings(“all”) [ 抑制所有类型的警告]
下面一个简单的例子:
public class Machine {
private List versions;
public void addVersion(String version) {
versions.add(version);
}
}
编译器会发出使用原始数据类型的警告
如果不想修复这个问题,可以通过@SuppressWarnings注解来抑制编译器的警告。
该注解允许指定忽略该方法的哪些特定警告。
不同的编译器或IDE的警告类型可能会不同,最常见的两种类型是deprecation和unchecked。
deprecation 告诉编译器忽略过时的方法或类型检查。
unchecked 告诉编译器忽略原始类型检查
public class Machine {
private List versions;
@SuppressWarnings("unchecked")
// or
@SuppressWarnings({"unchecked"})
public void addVersion(String version) {
versions.add(version);
}
}
如果想抑制多种类型的警告,可以采用字符串数组方式
@SuppressWarnings({"unchecked", "deprecated"})
Eclipse Galileo版本支持的抑制警告的名称:
关键字 | 用途 |
---|---|
all | to suppress all warnings (抑制所有警告) |
boxing | to suppress warnings relative to boxing/unboxing operations (抑制装箱、拆箱操作时候的警告) |
cast | to suppress warnings relative to cast operations (抑制映射相关的警告) |
dep-ann | to suppress warnings relative to deprecated annotation (抑制启用注释的警告) |
deprecation | to suppress warnings relative to deprecation (抑制过期方法警告) |
fallthrough | to suppress warnings relative to missing breaks in switch statements (抑制确在switch中缺失breaks的警告) |
finally | to suppress warnings relative to finally block that don’t return (抑制finally模块没有返回的警告) |
hiding | to suppress warnings relative to locals that hide variable(抑制相对于隐藏变量的局部变量的警告) |
incomplete-switch | to suppress warnings relative to missing entries in a switch statement (enum case)(忽略没有完整的switch语句) |
nls | to suppress warnings relative to non-nls string literals( 忽略非nls格式的字符) |
null | to suppress warnings relative to null analysis( 忽略对null的操作) |
rawtypes | to suppress warnings relative to un-specific types when using generics on class params( 使用generics时忽略没有指定相应的类型) |
restriction | to suppress warnings relative to usage of discouraged or forbidden references( 抑制禁止使用劝阻或禁止引用的警告) |
serial | to suppress warnings relative to missing serialVersionUID field for a serializable class( 忽略在serializable类中没有声明serialVersionUID变量) |
static-access | to suppress warnings relative to incorrect static access( 抑制不正确的静态访问方式警告) |
synthetic-access | to suppress warnings relative to unoptimized access from inner classes( 抑制子类没有按最优方法访问内部类的警告) |
unchecked | to suppress warnings relative to unchecked operations( 抑制没有进行类型检查操作的警告) |
unqualified-field-access | to suppress warnings relative to field access unqualified( 抑制没有权限访问的域的警告) |
unused | to suppress warnings relative to unused code( 抑制没被使用过的代码的警告) |
参考文章:
相关文章
- C#如何正确运用异步编程技术
- 如何正确地使用设计模式?
- 医保卡的正确使用
- 开发函数计算的正确姿势———为 PHP 运行时添加自定义扩展
- 开发函数计算的正确姿势——使用交互模式安装依赖
- 竞品分析报告正确的打开方式
- MySQL小表join大表的正确使用姿势(straight_join 关键字的使用)
- 在java中正确使用PostgreSQL大对象和字节流类型的姿势
- 在java中正确使用PostgreSQL大对象和字节流类型的姿势
- Android 验证是否为正确手机号
- 三张图读懂Greenplum在企业的正确使用姿势
- 已解决TimeoutError: [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。
- 索引的正确“打开姿势”
- #华为云·寻找黑马程序员#【代码重构之路】使用Pattern的正确姿势
- 快速了解前端开发HTML的正确姿势
- Redis 作者 Antirez 讲如何实现分布式锁?Redis 实现分布式锁天然的缺陷分析&Redis分布式锁的正确使用姿势!...
- Redis 作者 Antirez 讲如何实现分布式锁?Redis 实现分布式锁天然的缺陷分析&Redis分布式锁的正确使用姿势!...
- Redis 作者 Antirez 讲如何实现分布式锁?Redis 实现分布式锁天然的缺陷分析&Redis分布式锁的正确使用姿势!...
- Redis 作者 Antirez 讲如何实现分布式锁?Redis 实现分布式锁天然的缺陷分析&Redis分布式锁的正确使用姿势!...
- linux线程退出正确姿势demo
- 大学计算机类的专业怎么选才正确?
- 用正确的反义词组命名具有互斥意义的变量或相反动作的函数等
- 零基础同学自学编程的正确姿势