@SuppressWarnings注解是jse提供的注解。作用是屏蔽一些无关紧要的警告。使开发者能看到一些他们真正关心的警告。从而提高开发者的效率
简介:java.lang.SuppressWarnings是J2SE 5.0中标准的Annotation之一。可以标注在类、字段、方法、参数、构造方法,以及局部变量上。作用:告诉编译器忽略指定的警告,不用在编译完成后出现警告信息。
使用:
@SuppressWarnings(“”)
@SuppressWarnings({})
@SuppressWarnings(value={})
根据sun的官方文档描述:
value - 将由编译器在注释的元素中取消显示的警告集。允许使用重复的名称。忽略第二个和后面出现的名称。出现未被识别的警告名不是错误:编译器必须忽略无法识别的所有警告名。但如果某个注释包含未被识别的警告名,那么编译器可以随意发出一个警告。
各编译器供应商应该将它们所支持的警告名连同注释类型一起记录。鼓励各供应商之间相互合作,确保在多个编译器中使用相同的名称。
示例:
·   @SuppressWarnings("unchecked")
告诉编译器忽略unchecked 警告信息,如使用List,ArrayList等未进行参数化产生的警告信息。
·   @SuppressWarnings("serial")
如果编译器出现这样的警告信息:The serializable class WmailCalendar does not declare a static final serialVersionUID field of type long,使用这个注释将警告信息去掉。
·   @SuppressWarnings("deprecation")
如果使用了使用@Deprecated注释的方法,编译器将出现警告信息。使用这个注释将警告信息去掉。
·   @SuppressWarnings("unchecked", "deprecation")
告诉编译器同时忽略unchecked和deprecation的警告信息。
·   @SuppressWarnings(value={"unchecked", "deprecation"})
等同于@SuppressWarnings("unchecked", "deprecation")
今天来谈谈@SuppressWarnings注解的作用。
J2SE 提供的最后一个批注是 @SuppressWarnings。该批注的作用是给编译器一条指令,告诉它对被批注的代码元素内部的某些警告保持静默。
@SuppressWarnings 批注允许您选择性地取消特定代码段(即,类或方法)中的警告。其中的想法是当您看到警告时,您将调查它,如果您确定它不是问题,
您就可以添加一个 @SuppressWarnings 批注,以使您不会再看到警告。虽然它听起来似乎会屏蔽潜在的错误,但实际上它将提高代码安全性,因为它将防止
您对警告无动于衷 — 您看到的每一个警告都将值得注意。
我经常遇到的问题是不晓得什么时候用@SupressWarnings的什么批注好,所以做了如下整理
使用:
@SuppressWarnings(“”)
@SuppressWarnings({})
@SuppressWarnings(value={})
编码时我们总会发现如下变量未被使用的警告提示:

上述代码编译通过且可以运行,但每行前面的“感叹号”就严重阻碍了我们判断该行是否设置的断点了。这时我们可以在方法前添加 @SuppressWarnings("unused") 去除这些“感叹号”。

一.@SuppressWarings注解
作用:用于抑制编译器产生警告信息。

示例1——抑制单类型的警告:

[java]view plain copy
  1. @SuppressWarnings("unchecked")
  2. public void addItems(String item){
  3. @SuppressWarnings("rawtypes")
  4. List items = new ArrayList();
  5. items.add(item);
  6. }

示例2——抑制多类型的警告:

[java]view plain copy
  1. @SuppressWarnings(value={"unchecked", "rawtypes"})
  2. public void addItems(String item){
  3. List items = new ArrayList();
  4. items.add(item);
  5. }

示例3——抑制所有类型的警告:

[java]view plain copy
  1. @SuppressWarnings("all")
  2. public void addItems(String item){
  3. List items = new ArrayList();
  4. items.add(item);
  5. }
二.注解目标
通过@SuppressWarnings 的源码可知,其注解目标为类、字段、函数、函数入参、构造函数和函数的局部变量。而大家建议注解应声明在最接近警告发生的位置。 
三.抑制警告的关键字
关键字 用途
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
finally  to suppress warnings relative to finally block that don’t return
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)
nls to suppress warnings relative to non-nls string literals
null to suppress warnings relative to null analysis
rawtypes to suppress warnings relative to un-specific types when using generics on class params
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
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
  • 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  (抑制没被使用过的代码的警告)
  •                     <li class="tool-item tool-active is-like "><a href="javascript:;"><svg class="icon" aria-hidden="true"><use xlink:href="#csdnc-thumbsup"></use></svg><span class="name">点赞</span><span class="count">2</span></a></li><li class="tool-item tool-active is-collection "><a href="javascript:;" data-report-click="{&quot;mod&quot;:&quot;popu_824&quot;}"><svg class="icon" aria-hidden="true"><use xlink:href="#icon-csdnc-Collection-G"></use></svg><span class="name">收藏</span></a></li><li class="tool-item tool-active is-share"><a href="javascript:;"><svg class="icon" aria-hidden="true"><use xlink:href="#icon-csdnc-fenxiang"></use></svg>分享</a></li><!--打赏开始--><!--打赏结束--><li class="tool-item tool-more"><a><svg t="1575545411852" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5717" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M179.176 499.222m-113.245 0a113.245 113.245 0 1 0 226.49 0 113.245 113.245 0 1 0-226.49 0Z" p-id="5718"></path><path d="M509.684 499.222m-113.245 0a113.245 113.245 0 1 0 226.49 0 113.245 113.245 0 1 0-226.49 0Z" p-id="5719"></path><path d="M846.175 499.222m-113.245 0a113.245 113.245 0 1 0 226.49 0 113.245 113.245 0 1 0-226.49 0Z" p-id="5720"></path></svg></a><ul class="more-box"><li class="item"><a class="article-report">文章举报</a></li></ul></li></ul></div></div><div class="person-messagebox"><div class="left-message"><a href="https://blog.csdn.net/tiantangdizhibuxiang"><img src="https://profile.csdnimg.cn/5/D/E/3_tiantangdizhibuxiang" class="avatar_pic" username="tiantangdizhibuxiang"><img src="https://g.csdnimg.cn/static/user-reg-year/2x/3.png" class="user-years"></a></div><div class="middle-message"><div class="title"><span class="tit"><a href="https://blog.csdn.net/tiantangdizhibuxiang" data-report-click="{&quot;mod&quot;:&quot;popu_379&quot;}" target="_blank">天堂地址不详Y</a></span></div><div class="text"><span>发布了123 篇原创文章</span> · <span>获赞 163</span> · <span>访问量 33万+</span></div></div><div class="right-message"><a href="https://im.csdn.net/im/main.html?userName=tiantangdizhibuxiang" target="_blank" class="btn btn-sm btn-red-hollow bt-button personal-letter">私信</a><a class="btn btn-sm  bt-button personal-watch" data-report-click="{&quot;mod&quot;:&quot;popu_379&quot;}">关注</a></div></div></div>
    

@SuppressWarnings注解用法详解相关推荐

  1. 去除编译警告@SuppressWarnings注解用法详解(转)

    使用: @SuppressWarnings("") @SuppressWarnings({}) @SuppressWarnings(value={}) 编码时我们总会发现如下变量未 ...

  2. Java 注解用法详解——@SuppressWarnings

    转自: https://www.cnblogs.com/fsjohnhuang/p/4040785.html Java魔法堂:注解用法详解--@SuppressWarnings 一.前言 编码时我们总 ...

  3. springboot @Valid 注解用法详解

    @Valid 注解通常用于对象属性字段的规则检测,具体啥意思,下面让我娓娓道来: 下面我们以新增一个员工为功能切入点,以常规写法为背景,慢慢烘托出 @Valid 注解用法详解. 那么,首先,我们会有一 ...

  4. @Valid 和 @Validated 注解用法详解

    目录 案例引入 @Valid 详解 @Validated 详解 @Valid 和 @Validated 比较 案例引入 下面我们以新增一个员工为功能切入点,以常规写法为背景,慢慢烘托出 @Valid ...

  5. Java魔法堂:注解用法详解——@SuppressWarnings

    一.前言 编码时我们总会发现如下变量未被使用的警告提示: 上述代码编译通过且可以运行,但每行前面的"感叹号"就严重阻碍了我们判断该行是否设置的断点了.这时我们可以在方法前添加 @S ...

  6. java suppresslint_Java 注解用法详解——@SuppressWarnings

    一.前言 编码时我们总会发现如下变量未被使用的警告提示: 上述代码编译通过且可以运行,但每行前面的"感叹号"就严重阻碍了我们判断该行是否设置的断点了.这时我们可以在方法前添加 @S ...

  7. Java魔法堂:注解用法详解——@SuppressWarnings(转)

    一.前言 编码时我们总会发现如下变量未被使用的警告提示: 上述代码编译通过且可以运行,但每行前面的"感叹号"就严重阻碍了我们判断该行是否设置的断点了.这时我们可以在方法前添加 @S ...

  8. SpringBoot从入门到精通教程(二十七)- @Valid注解用法详解+全局处理器Exception优雅处理参数验证用法

    问题痛点 用 Spring 框架写代码时,写接口类,相信大家对该类的写法非常熟悉.在写接口时要写效验请求参数逻辑,这时候我们会常用做法是写大量的 if 与 if else 类似这样的代码来做判断,如下 ...

  9. springboot@Valid注解用法详解

    目录 一.@Valid注解的作用 二.@Valid注解的用法 三.更多实体类的校验注解如下 一.@Valid注解的作用 @Valid用于对象属性的检测,可以极大减少代码量,具体看我下面我娓娓道来 现有 ...

最新文章

  1. 有感于“政府傍大款”----谈中小企业融资问题
  2. 如何在网站建设时正确设置符合SEO优化的元素?
  3. 深入理解Spring AOP思想
  4. yum 安装mysql 启动_linux(centos6.9)下使用yum安装mysql,及启动MySQL等
  5. php多人点餐可以看到对方点的菜,千万不要小看你身边那个会点菜的人,因为
  6. 剩余 大小 查看内存_JVM的内存分配策略以及进入分代的条件
  7. 13.Azure流量管理器(上)
  8. iQOO Neo5活力版或本月发布:搭载骁龙870+高刷LCD屏
  9. 在线教学生计算机,洪恩老兔轻松教你学电脑
  10. iphone编辑过的录音怎么还原_ios录音误剪怎么恢复
  11. 2022道路运输企业安全生产管理人员操作证考试题及在线模拟考试
  12. JavaScript在线代码编辑器-技术选型
  13. 微信无法打开xlsx文件_微信打不开文件怎么办显示excel丢失或损坏
  14. NOIP2016 暑期培训 D6
  15. Reporter对象的几个鲜为人知的方法
  16. 算法题--广度优先算法(素数行李箱密码解法加步骤)
  17. 内外兼修:程序员的成长之路+软技能 代码之外的生存指南
  18. xxl-job配置发邮件 spring.mail的QQ邮箱配置
  19. 算完boxplot的四分位数以后,如何利用excel制作boxplot
  20. python获取文件的绝对路径

热门文章

  1. TypeScript - 函数
  2. 学生卡变成普通卡_15日前不审验 学生卡变成普通卡
  3. 使用 IntraWeb (22) - 基本控件之 TIWCalendar
  4. matlab冲激函数delta,信号与系统matlab实验指导书解决方案.doc
  5. HIVE操作自查手册(全)
  6. 操作系统:什么是中断?
  7. Java应用:图片叠加
  8. matlab 单位化矩阵,MATLAB数据矩阵单位化,归一化,标准化
  9. 平衡电枢磁性扬声器行业调研报告 - 市场现状分析与发展前景预测
  10. 程序员等于吃青春饭吗?