一.前言

相信大家都有遇到下面这种情况

又是灰色又是波浪线的 而且还一直提示警告

那么我们有没有什么方法可以屏蔽他吗?

当然有啊~ 下面我们就来了解一下

仅因为这类教程太少 而且大多数都不是针对IDEA的 所以我才放出来 有大佬的话不要喷我啦

开始本教程之前 我在这里默认您会Java (至少要学到注解)

不要过度使用抑制警告 遇到警告能处理就尽量处理 仅当您确定您的代码绝对不会出现问题 警告是多余的时候 才应该使用警告抑制

我也不知道我文章应该发表到哪里去 那就只好在B站发了啦

下文中的快捷键可能会因为IDEA设置有所不同

二. @SuppressWarnings (使用注解抑制警告 推荐)

@SuppressWarnings(String[] value)是Java自带的一个注解 Java1.5被创建 位于 java.lang 包下 其@Target注解如下

也就是说 几乎所有符号(类 成员变量 方法 参数 构造方法 局部变量)都支持该注解

其@Retention注解如下

意味着这个注解指挥存在于代码中 不仅不会运行进JVM 甚至编译的时候都不加进去

其有一个方法(参数) value 类型是String数组 该参数的介绍如下The set of warnings that are to be suppressed by the compiler in the annotated element. Duplicate names are permitted. The second and successive occurrences of a name are ignored. The presence of unrecognized warning names is not an error: Compilers must ignore any warning names they do not recognize. They are, however, free to emit a warning if an annotation contains an unrecognized warning name.

The string "unchecked" is used to suppress unchecked warnings. Compiler vendors should document the additional warning names they support in conjunction with this annotation type. They are encouraged to cooperate to ensure that the same names work across multiple compilers.

Returns:

the set of warnings to be suppressed

我才不是不会翻译呢 我只是懒得翻译

也就是说 这个参数填的是我们要抑制的警告类型(to set of warnings to be suppressed)

idea和其他ide(例如Eclipse)的很多参数都不一样 那么我们应该如何填这个字符串呢?

附上一个非常简单的方法:使用IDEA提示来抑制警告

IDEA还是很人性化的呀 我们只需要把输入标放在这个警告上 按下Alt+Enter 选择任意一个快速修复的选项 然后按→方向键 就能看到这个提示啦 接着我们可以继续按方向键来控制选择

我们可以看到 我们有5种方法可以抑制警告(在不同的情况下提供的选项数量都不同) 我们选择任何一个选项 都可以直接抑制该警告各种不同的抑制警告方式

我想说的都写上面注释里了

怎么样 是不是看起来舒服多了呢(明明看起来更乱了好吗)

2333...确实更乱了 所以说不要过度使用@SuppressWarnings

不过这里要解释一下这个以注释的方法抑制警告 这是一个IDEA独有的抑制警告的方法 它的作用和单行注解抑制警告是一样的 但是不同的是 @SuppressWarnings它不可以非声明变量的语句

常见的参数如下(还在持续更新 红色为常用功能) 如果您找不到您想要的选项 可以参照上面的IDEA提示

all - 所有警告 (不要过度使用该参数 容易忽略掉IDE的一片好心,一些问题 在没有调过设置的情况下大部分警告是有意义的)

RedundantCast - 强转警告

deprecation - 调用已弃用的方法/类/对象的警告

UnnecessaryReturnStatement - 已经到方法底部 无需再返回时的警告

ConstantConditions - 检查可能会报异常(比如这个对象分析出为null 会抛出NullPointerException)的警告

rawtypes - 在类上使用泛型时 相对于非特异性类型的警告

serial - 一个序列化的类没有serialVersionUID成员变量的警告

MethodMayBeStatic - 方法应该成为一个静态方法时的警告

unused - 一个对象或类或方法从未被使用时的警告

SpellCheckingInspection - 拼写检查的警告

LocalCanBeFinal - 对象应该被final修饰的警告

ResultOfMethodCallIgnored - 方法返回值未被使用的警告

以后遇到的话 我还会继续来添加~这里就不多说啦~

三. 临时关闭警告/错误

我们可以看到 IDEA代码块右上角(部分调了设置的用户可能在其他地方) 可以直接显示当前警告和错误的数量

我们把光标悬停在上面 会出现一个选项鼠标悬停在上方的选项

我们拉开选项 里面又有3个选项 可以选择高亮哪些内容(隐藏全部,仅显示错误,显示错误和警告)

不太推荐此做法 因为这个做法会让当前这个选项卡的所有警告或错误都不再高亮显示 容易忽略掉一些真正的问题

四. 修改IDEA设置

有时候的警告是没有意义的 就比如说下面这种情况

这是为什么呢?明明很正常的代码啊?为什么有枚举类就会警告呢?小编也觉得很惊讶啊 但事实就是如此 不知大家有什么看法呢 欢迎在评论区里留言哦

对于这种问题 我们可以直接Ctrl+F1就可以查看其原因(如果没有出现 那就再按一次Ctrl+F1)

使用Ctrl+F1查看警告原因

原来是因为 Java 1.4以下是不支持enum的 IDEA就警告我们 如果要在Java 1.4以下环境运行的话 那就不可以使用enum

当然 现在谁还用远古版本Java呢?大家都在用1.8 所以这种类似的警告是多余的 我们可以选择永久性将其关闭

我们单击 File -> Settings... (可以直接使用快捷键Ctrl+Alt+S 不过这个快捷键很可能已经被QQ占用了)

接着我们依次打开Editor -> Inspections 然后搜索我们刚刚的警告 "Enumerated class"

就可以对该警告进行设置啦

如果不需要这种警告 取消勾选即可

如果想让它更严重地警告 直接选择Error

如果想让它安静点 但还是提醒 直接选择Weak Warnning

那么有人现在可能要问了 啊 怎么这么多 我找不到怎么办啊

对于这种清空 我们的IDEA好像还有一种快捷选项哦

我们对着报警告的按钮 按下Alt+Enter 再按→方向键

我们选择第一个 "Edit inspection profile setting"

怎么样 是不是很简单呢

五. 最后

还是那句话 我们看到警告 最先应该想到的是 我们该如何去处理它 就像异常一样 不应该一直想着怎么去屏蔽它 只有当你确定了 这个警告是无意义的 才应该抑制或关闭

就像我 打开了全部警告 随便写个注解都报警告 随便写个枚举类也报警告

一个警告告诉我 这个局部变量应该被final修饰 我加上final后 编译器又提示我这个final修饰符是多余的 我再删掉final 它又提示我这个局部变量应该被final修饰 (我太难了)这时候 我们应该把警告关掉

再比如说 我们通过反射修改了一个变量的值 当我们想要调用这个值的时候 IDEA却告诉我们 这个值是null 现在调用可是会空指针的 但是我们已经用反射给它赋过值了 这时候我们才应该抑制该警告

写这篇文章太不容易了qwq 希望得到大家的支持哦~

idea 关闭检查更新_Intellij idea的抑制警告(SuppressWarnings)列表(正在持续更新)相关推荐

  1. java抑制警告快捷键_@SuppressWarning 抑制警告注解

    @SuppressWarning 抑制警告注解 Java.lang.SuppressWarnings 是 J2SE5.0中标准的Annotation 之一. 可以标注在类,字段,方法,参数,构造方法, ...

  2. macOS关闭检查更新的方法

    如题,要关闭macOS系统菜单中自带软件或系统的更新提醒或设置图标红色1的标记,可以修改host文件,添加以下几行: #mac update ''' 127.0.0.1 swscan.apple.co ...

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

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

  4. React Native开发错误警告处理总结(已解决 !持续更新)

    注:本文是我在开发过程中遇到问题解决方法的总结,之后会持续更新,希望帮助到更多的学习者.文中有不妥的地方希望指出共同学习,同时欢迎大神补充.(之后我会放出自己开发整理的笔记和GithubDemo地址, ...

  5. Eclipse 的常见报错、警告和原因分析、解决方式以及相关操作快捷键小结(持续更新)

    文章目录 前言 一.常见的三种类型错误 二.运行时错误 总结 前言 Eclipse 作为我们开发中最为常用的一款 IDE,功能齐全(虽然近几年被 IDEA 占尽了风头),但是最为基本的一些操作我们是要 ...

  6. java抑制警告注解

    @SuppressWarnings(value = "all") 参数解释 all to suppress all warnings boxing to suppress warn ...

  7. 如何解除计算机上的安全警报,windows安全警报怎么关闭 为什么总是弹出安全警告...

    最近两天电脑总是频繁的提示windows安全警报,关要关半天,让小编我觉得很烦躁,不知道大家是否也遇到这样的情况,所以小编特地找来解决方法来分享给大家windows安全警报怎么关闭,这样可以让大家没有 ...

  8. idea 如何关闭 field injection is not recommended 警告

    idea中有很多代码检查机制,比如命名是否遵循驼峰规则,是否有冗余代码,是否有魔法值等等,在依赖注入时,直接使用@Autowired注解进行注入时,可能会出现黄色小波浪线,提示你:field inje ...

  9. 如何关闭win7下的打开文件安全警告

    解决方案运行输入:"gpedit.msc" ,打开组策略 用户配置--管理模板--windows组件--附件管理器 选择点击中等危险文件类型包含列表--右键--属性 选已启用 在指 ...

最新文章

  1. 什么是导师负责制_为什么一个导师是不够的
  2. 【Android 插件化】Hook 插件化框架 ( 从源码角度分析加载资源流程 | Hook 点选择 | 资源冲突解决方案 )
  3. html 调用main方法,ipcmain和ipcrenderer从index.html调用main.js函数
  4. python 将txt 表格转化为excel
  5. [28期] lamp兄弟连28期学员手册,请大家务必看一下
  6. 2013 ACM/ICPC 亚洲区 杭州站
  7. 我的QT4.5编译流水帐(转帖)
  8. linux文件 内存映射 锁,linux – mmap:将映射文件立即加载到内存中吗?
  9. python爬虫怎么下载图片到手机_Python爬虫获取图片并下载保存至本地
  10. 解决flask端口被占用的问题
  11. 阿里云飞天洛神2.0:开放弹性的云网络NFV平台
  12. 纯js实现瀑布流布局及ajax动态新增数据
  13. python场景识别_python 场景
  14. 从JDK源码看关闭钩子
  15. 拓扑排序Topological Sorting
  16. C# 特性(Attribute)之Flag特性
  17. python里print字符串+字符串_python 字符串 和 print
  18. TS 版 Promise 详解
  19. 新网站关键词优化小技巧
  20. 【OpenCV图像处理入门学习教程六】基于Python的网络爬虫与OpenCV扩展库中的人脸识别算法比较

热门文章

  1. 一个老程序员对数据库的一点纠结
  2. 基于Active Directory的用户验证
  3. 初学者phthon笔记(异常处理)
  4. 吃豆人动态模型创建---canvas
  5. full gc 次数_32. GC 是怎样工作的?
  6. python 获取文件夹所有文件列表_python获取文件夹下所有文件及os模块方法
  7. c++引用另一个类的方法_利用CVE20191132:Windows内核中的另一个NULL指针取消引用...
  8. 在linux系统下用rpm查看安装信息,rpm的查询命令
  9. nodejs cluster_NodeJS下好用的Redis客户端ioredis,再推荐一个Redis可视化工具
  10. python调研报告总结体会_调研报告心得体会