@SuppressWarnings使用的正确姿势

@SuppressWarnings比较常见,理解和使用起来都很简单。

但是就这这个机会系统的整理一下。

通过源码可以看出,支持在类、属性、方法、参数、构造方法、本地变量上使用。

img

@SuppressWarnings注解的使用有三种:

  1. @SuppressWarnings(“unchecked”) [抑制单类型的警告]
  2. @SuppressWarnings(“unchecked”,“rawtypes”) [抑制多类型的警告]
  3. @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版本支持的抑制警告的名称:

关键字用途
allto suppress all warnings (抑制所有警告)
boxingto suppress warnings relative to boxing/unboxing operations (抑制装箱、拆箱操作时候的警告)
castto suppress warnings relative to cast operations (抑制映射相关的警告)
dep-annto suppress warnings relative to deprecated annotation (抑制启用注释的警告)
deprecationto suppress warnings relative to deprecation (抑制过期方法警告)
fallthroughto suppress warnings relative to missing breaks in switch statements (抑制确在switch中缺失breaks的警告)
finallyto suppress warnings relative to finally block that don’t return (抑制finally模块没有返回的警告)
hidingto suppress warnings relative to locals that hide variable(抑制相对于隐藏变量的局部变量的警告)
incomplete-switchto suppress warnings relative to missing entries in a switch statement (enum case)(忽略没有完整的switch语句)
nlsto suppress warnings relative to non-nls string literals( 忽略非nls格式的字符)
nullto suppress warnings relative to null analysis( 忽略对null的操作)
rawtypesto suppress warnings relative to un-specific types when using generics on class params( 使用generics时忽略没有指定相应的类型)
restrictionto suppress warnings relative to usage of discouraged or forbidden references( 抑制禁止使用劝阻或禁止引用的警告)
serialto suppress warnings relative to missing serialVersionUID field for a serializable class( 忽略在serializable类中没有声明serialVersionUID变量)
static-accessto suppress warnings relative to incorrect static access( 抑制不正确的静态访问方式警告)
synthetic-accessto suppress warnings relative to unoptimized access from inner classes( 抑制子类没有按最优方法访问内部类的警告)
uncheckedto suppress warnings relative to unchecked operations( 抑制没有进行类型检查操作的警告)
unqualified-field-accessto suppress warnings relative to field access unqualified( 抑制没有权限访问的域的警告)
unusedto suppress warnings relative to unused code( 抑制没被使用过的代码的警告)

参考文章:

https://www.baeldung.com/java-suppresswarnings

https://www.cnblogs.com/perfei456/p/8962167.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/555949.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql5.7.3安装教程_最新mysql 5.7.23安装配置图文教程

2018年最新MySQL5.7详细安装与配置,总共分为四步,其中环境变量配置不是必须的。1、安装包下载2、安装过程3、环境变量配置4、连接测试一、官网下载MYSQL安装包2.选择合适你电脑系统的版本进行安装。如果有网络,选择在线安装的版本&#xff0c…

MySQL 添加where 1= 1 是否会引起索引失效

背景 在检查数据库的执行效率的时候,发现了一条查询极慢的查询sql。sql的例子如下: EXPLAIN SELECT * FROM user_point_detail_info WHERE 11 AND deleted FALSE AND app_id 2010001 AND point > 10 AND add_time BETWEEN "2021-03-12 17:0…

mysql回档命令_MySQL 备份恢复

1:备份常用工具:mysqldump, xtrabackupmysqldump: 原生数据导出工具,以sql的形式导出保存xtrabackup: percona团队提供的备份工具,基于文件系统的备份2:备份全库:mysqldump -h10.6.29.1 -uroot -p --all-da…

MySQL在like查询中是否使用到索引

mysql在使用like查询中,能不能用到索引?在什么地方使用索引呢? 在使用like的时候,如果使用‘%%’,会不会用到索引呢? EXPLAIN SELECT * FROM user WHERE username LIKE %ptd_%;上面的结果是全表扫描&#…

elasticsearch scroll 一页最大数据量_elasticsearch 百亿级数据检索案例与原理

一、前言数据平台已迭代三个版本,从头开始遇到很多常见的难题,终于有片段时间整理一些已完善的文档,在此分享以供所需朋友的实现参考,少走些弯路,在此篇幅中偏重于ES的优化,关于HBase,Hadoop的设…

使用Collections.emptyList()生成的List不支持add方法___Java Collections.emptyList方法的使用及注意事项

使用Collections.emptyList()生成的List不支持add方法 今天使用Collections.emptyList(),返回一个空的List 但是发现它不支持Add功能,调用Add会抛出unsupportedException, 在以后要返回一个空的List,并还需要后续操作时&#xff…

解决SVN代码冲突

解决SVN代码冲突 解决冲突有三种选择: 1、放弃自己的更新,使用svn revert(回滚),然后提交。在这种方式下不需要使用svn resolved(解决) 2、放弃自己的更新,使用别人的更新。使用最新获取的版本覆盖目标文件,执行res…

options请求

<1> 一个Option请求引发的深度解析 在当前项目中&#xff0c;前端通过POST方式访问后端的REST接口时&#xff0c;发现两条请求记录&#xff0c;一条请求的Request Method为Options&#xff0c;另一条请求的Reuest Method为Post。想要解决这个疑惑还得从以下3个概念说起…

线程中可以创建进程吗_Linux 进程线程是如何创建的?

上文讲了《Linux进程在内核眼中是什么样子的&#xff1f;》&#xff0c;可以理解内核关于进程线程的所有管理就通过一个结构体 —— task_struct。知道了内核眼中进程的描述&#xff0c;本文通过三个例子站在用户态看下进程线程是如何创建的&#xff0c;不同的创建方式又有哪些…

http请求发生了两次(options请求)

前言 自后台restful接口流行开来&#xff0c;请求了两次的情况&#xff08;options请求&#xff09;越来越普遍。笔者也在实际的项目中遇到过这种情况&#xff0c;做一下整理总结。 文章书写思路&#xff1a; 为什么发生两次请求 http的请求方式&#xff0c;包括OPTIONS、GET…

servlet怎么接受请求_谁再问Servlet的问题,我就亲自上门来教学了

1. 概述在这篇简短的文章中&#xff0c;我们将从概念上理解什么是servlet 和 servlet 容器以及它们是如何工作的。同时&#xff0c;还能在请求、响应、会话对象、共享变量和多线程的上下文中看到它们的身影。2. Servlets 和 它的容器servlet 是 JEE 用于 web 开发常用的组件。它…

Mysql中SQL语句不使用索引的情况

Mysql中SQL语句不使用索引的情况 MySQL查询不使用索引汇总 众所周知&#xff0c;增加索引是提高查询速度的有效途径&#xff0c;但是很多时候&#xff0c;即使增加了索引&#xff0c;查询仍然不使用索引&#xff0c;这种情况严重影响性能&#xff0c;这里就简单总结几条MySQL…

详解mysql什么时候不走索引

全值匹配我最爱&#xff0c;最左前缀要遵守&#xff1b; 带头大哥不能死&#xff0c;中间兄弟不能断&#xff1b; 索引列上不计算&#xff0c;范围之后全失效&#xff1b; LIKE百分写最右&#xff0c;覆盖索引不写 *&#xff1b; 不等空值还有or&#xff0c;索引失效要少用&…

unbuntu cmake安装mysql_ubuntu下编译安装mysql5.5

1.主要步骤如下添加mysql用户和用户组—>下载源码—>解压源码安装编译2个套件—>编译源码-安装编译好的程序-配置mysql启动服务2.Mysql源码解压建好相应的安装目录&#xff0c;将压缩文件复制到安装目录并解压。3.添加用户组Sudo groupadd mysql4.添加用户Sudo userad…

mysql删库后恢复_记一次MySQL删库的数据恢复

昨天因为不可描述的原因&#xff0c;数据库直接被 drop database删除。在第一时间停止数据库服务和Web服务&#xff0c;备份MySQL数据目录下的所有文件之后&#xff0c;开始走上数据恢复之路。第一次干这种事&#xff0c;各种不得法。因为我们既没有备份&#xff0c;也没有开启…

Mysql 中的Text字段的范围

Mysql 中的Text字段的范围 text&#xff1a;存储可变长度的非Unicode数据&#xff0c;最大长度为2^31-1个字符。text列不能有默认值&#xff0c;存储或检索过程中&#xff0c;不存在大小写转换&#xff0c;后面如果指定长度&#xff0c;不会报错误&#xff0c;但是这个长度是不…

python实现语义分割_语义分割算法之FCN论文阅读及源码实现

论文原文创新点提出了一种端到端的做语义分割的方法&#xff0c;在这里插入图片描述如图&#xff0c;直接拿分割的ground truth作为监督信息&#xff0c;训练一个端到端的网络&#xff0c;让网络做p像素级别的预测。如何设计网络结构如何做像素级别的预测在这里插入图片描述在V…

右上角的引用文献格式_论文要引用的小符号右上角怎么打?

上标是【现在】论【文的】书写【都会】【用到】引用【的小】符号&#xff0c;上标【一般】用【来对】所标的【文字】【或者】段落【进行】进【一步】【的解】释&#xff0c;【所以】常【用来】【解释】含义&#xff0c;【或者】出处&#xff0c;【而其】【解释】【一般】在书【…

mysql服务器程序_MySQL服务器

1、安装通常系统在成功安装之后就已经自带MySQL服务器以及客户端了。查询MySQL及其相关文件是否安装&#xff1a;rpm -qa | grep perlrpm -qa | grep mysql如果没有安装&#xff0c;则可以使用yum进行安装&#xff1a;yum -y install perl-DBIyum -y install perl-DBD-MySQLyum…

Java中List的contains方法,你用对了吗?

Java语言中的List是我们处理集合时经常会用到的。而List定义了一个contains方法&#xff0c;用以判断一个集合中是否包含指定的一个对象。 大家应该有用到过吧&#xff0c;可是你真的会用&#xff0c;用对了吗&#xff1f; 看看下面的代码。 上图代码中&#xff0c;创建了两个…