idea关闭检查更新_Intellijidea的抑制警告
(SuppressWarnings。。。
⼀.前⾔
相信⼤家都有遇到下⾯这种情况
⼜是灰⾊⼜是波浪线的 ⽽且还⼀直提⽰警告
那么我们有没有什么⽅法可以屏蔽他吗?
当然有啊~ 下⾯我们就来了解⼀下
仅因为这类教程太少 ⽽且⼤多数都不是针对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 docume
nt 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种⽅法可以抑制警告(在不同的情况下提供的选项数量都不同) 我们选择任何⼀个选项 都可以直接抑制该警告各种不
同的抑制警告⽅式
我想说的都写上⾯注释⾥了
怎么样 是不是看起来舒服多了呢(明明看起来更乱了好吗)
<确实更乱了 所以说不要过度使⽤@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 -> (可以直接使⽤快捷键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 希望得到⼤家的⽀持哦~