@SuppressWarnings使用的正确姿势
@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( 抑制没被使用过的代码的警告) |
参考文章:
https://www.baeldung.com/java-suppresswarnings
https://www.cnblogs.com/perfei456/p/8962167.html
@SuppressWarnings使用的正确姿势相关推荐
- Ubuntu创建新用户的正确姿势
作者按:因为教程所示图片使用的是 github 仓库图片,网速过慢的朋友请移步<Ubuntu 创建新用户的正确姿势>原文地址.更欢迎来我的小站看更多原创内容:godbmw.com,进行&q ...
- io在Linux,在Linux进行IO的正确姿势
原标题:在Linux进行IO的正确姿势 很多C/C++程序虽然在做网络编程, 但大多用别人封装好的库, 对底层不甚了解, 感觉 IO 操作不是很简单吗? 我敢说, 大多数人进行 IO 的姿势都不对, ...
- 互联网大厂内推求职的正确姿势?
作者 | 码农唐磊 来源 | 程序猿石头(ID:tangleithu) 背景 每个人的职业生涯基本上都离不开"投简历找工作"这件事(什么,你家里有矿?当我没说),那拿着简历找工作正 ...
- Android获取设备状态栏status bar高度的正确姿势
Android获取设备状态栏高度的正确姿势 正确代码方式: int height = 0;int resourceId = getApplicationContext().getResources() ...
- 开发函数计算的正确姿势——支持 ES6 语法和 webpack 压缩
为什么80%的码农都做不了架构师?>>> 首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算 ...
- 开发函数计算的正确姿势 —— 爬虫
2019独角兽企业重金招聘Python工程师标准>>> 在 <函数计算本地运行与调试 - Fun Local 基本用法> 中,我们介绍了利用 Fun Local 本地运行 ...
- 怎么用linux的HDD存储,Linux学习的正确姿势12:Linux存储概览
原标题:Linux学习的正确姿势12:Linux存储概览 从工作原理区分 机械 HDD 固态 SSD SSD的优势 SSD是摒弃传统磁介质,采用电子存储介质进行数据存储和读取的一种技术,突破了传统机械 ...
- 自学python需要买书吗-学习Python的正确姿势—基础教学,教科书该怎么买?
学习Python的正确姿势-基础教学,教科书该怎么买? 2019-05-07 18:52:46 23点赞 377收藏 4评论 写在前面: 四月读书季,京东图书大促销,赶上优惠的尾巴,抢购了几本心水很久 ...
- 如何自学python数据分析-良心整理!学习Python数据分析的正确姿势
学习 Python 数据分析的正确姿势 如果你是通过学习给程序员设计的 Python 课程来学习 Python 数据分析,那就大错特错了.很多数据分析师在开始学习 Python 数据分析之前就被引导学 ...
最新文章
- 附录6:TensorFlow基础(二)
- leetcode第一题两数相加
- oracle 包 解密,oracle9.1的加密解密包的用法
- 符号说明表怎么做_能看懂这些房屋施工图,说明你家装修没问题了
- RTX5 | STM32H743+CubeMX+RTX5+两路FDCAN驱动+CANopen协议
- 05 | 前馈网络与反向传播:模型的自我学习(下)
- 分布式锁的几种实现方式(转)
- 如何用 Python 给女友准备甜蜜的七夕礼物?
- linux gdb 导出到文件怎么打开,GDB基本命令从打开文件到调试结束的教程
- Copula函数实战(Matlab)
- android桌面工具,不一样的Android桌面小工具
- Mybatis-plus 分页功能报错:除非另外还指定了 TOP、OFFSET 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效
- linux安装无线网卡,ubuntu20.04.5安装无线网卡 WDN6200
- CoAP协议的常用开源代码实现
- 魅族mx5无法连接远程服务器,魅族mx5手机无法连接电脑怎么办
- 男孩子学计算机好不好,适合男孩学的专业 男生最吃香的专业
- unknown类型的使用
- Linux中No such file or directory但文件存在的解决办法
- upc 潜入苏拉玛 多源bfs + 并查集 + 思维
- Time Out“全球超酷街区”榜单新鲜出炉
热门文章
- linux部署node web,nodejs怎么部署到Linux上?
- [转载] java程序员快速学c++
- php 数据库编码,php怎么设置数据库编码方式
- 如何手撸一个队列?队列详解和面试题汇总(含答案)
- 【MATLAB】卡尔曼滤波器的原理及仿真(初学者专用)
- 关于二维数组取地址加以或减一解引用问题
- Linux QT5.12 一种整体界面字体设置的方法及设置PlainTextEdit组件的字体大小方法
- CentOS 7 搭建RAP2r Api文档管理系统
- CentOS 7 利用Docker搭建禅道系统
- 以命令方式从ftp服务器上下载和上传文件