1、".equals()" should not be used to test the values of “Atomic” classes.

不要使用equals方法对AtomicXXX进行是否相等的判断
Object的equals()描述:只有当x和y指向相同的引用时,equals()才返回true。

2、"=+" should not be used instead of “+=”

a =+ b;虽然正确但写法不合规,应写成 a = +b;

3、"@NonNull" values should not be set to null

标注非空假定非空且在使用之前不进行非空检查,设置为空会导致空指针异常

4、“BigDecimal(double)” should not be used

因为浮点的不精确,可能使用BigDecimal(double)得不到期望的值

5、“compareTo” results should not be checked for specific values

compareTo可能返回不是具体的值(除0外),建议用 >0、<0、=0

6、“compareTo” should not return “Integer.MIN_VALUE”

compareTo只代表一个不等标识,不代表不等的程度,应返回-1,0,1标识即可

7、 “Double.longBitsToDouble” should not be used for “int”

Double.longBitsToDouble返回给定的位所代表的double值,需要一个64位的long类型参数.

8、 “equals” method overrides should accept “Object” parameters

equals作为方法名应该仅用于重写Object.equals(Object)来避免混乱.

9、 “equals(Object obj)” should test argument type

要比较obj的class type是否一样

10、“equals” methods should be symmetric and work for subclasses

equals应是对等并且在有子类参与时能正常工作

11、“equals(Object obj)” and “hashCode()” should be overridden in pairs

成对重写

12、“Externalizable” classes should have no-arguments constructors

Externalizable(可序列化与返序列化)类应该有无参构造器

13、“getClass” should not be used for synchronization

{synchronized (this.getClass())} 错误 子类继承此方法时不能做到同步
{synchronized (MyClass.class)} 正确

14、“hashCode” and “toString” should not be called on array instances

使用Arrays.toString(args)和Arrays.hashCode(args)代替.

15、“instanceof” operators that always return “true” or “false” should be removed

16、“InterruptedException” should not be ignored

在代码中不应该忽略中断异常,只在日志中打印异常日志,就像“忽略”一样。抛出中断异常会清除线程的中断状态,因此如果异常处理不当,那么线程被中断的信息将会丢失。相反,中断应该被重新抛出——立即或者在清理方法的状态之后——或者应该通过调用Thread.interrupt()来重新中断线程,即使这是单线程的应用程序。任何其他的操作过程都有延迟线程关闭的风险,并且丢失了线程被中断的信息——线程很可能没有完成它的任务。

类似地,也应该传播ThreadDeath异常。根据它的JavaDoc:

如果ThreadDeath异常被一个方法捕获,那么它被重新抛出是很重要的,这样线程就会结束。

不符合要求的代码如下:

public void run () {try {while (true) {// do stuff}}catch (InterruptedException e) { // Noncompliant; logging is not enoughLOGGER.log(Level.WARN, "Interrupted!", e);}
}

catch块中只是打印了异常日志,相当于忽略了这个异常。

处理建议为抛出异常:

public void run () {try {while (true) {// do stuff}}catch (InterruptedException e) {LOGGER.log(Level.WARN, "Interrupted!", e);// Restore interrupted state...Thread.currentThread().interrupt();}
}

17、“Iterator.hasNext()” should not call “Iterator.next()”

18、“Iterator.next()” methods should throw “NoSuchElementException”

   public String next(){if(!hasNext()){throw new NoSuchElementException();}...}

19、“notifyAll” should be used

notify可能不能唤醒正确的线程,notifyAll代之。

20、“null” should not be used with “Optional”

把判空包装起来使用而不直接使用!=null

21、具有公有地静态final数组域

public static final String[] names={ "zhangsan","lisi"};

初看这段代码有什么感想?因为names定义的是static final,即定义为"不可变",值得注意的是它只是说明指向该对象的指针不变,对于常量对象来说这点是成立的,但对于数组来说就不成立!
因为上面只能保证names对象不变(意思是说final只能保证基本数据类型或原始数据类型不可变,比如:String,Double),但CODES引用的对象是可以改变的。
解决方案:定义一个私有数组,以及编写一个公有的非可变列表:

private static final String[] tempName={ "A","B", "C", "D", "E"};
public static final List names= Collections.unmodifiableList(Arrays.asList(tempName));

被忽略的错误——这个我一直都是这么写的啊!相关推荐

  1. sqlserver2008r2提示—应用程序的组件中发生了无法处理的异常。如果单击继续,应用程序将忽略次错误并尝试继续

    打开sqlserver2008r2数据库时,提示应用程序的组件中发生了无法处理的异常.如果单击继续,应用程序将忽略次错误并尝试继续. 碰到过2次这种问题,还是先记录下来吧,备忘 一次是在内网环境里碰到 ...

  2. 图形B=B≌B凸显中学数学有一系列重大错误——让5000年都无人能识的自然数一下子浮出水面

     图形B=B≌B凸显中学数学有一系列重大错误                               --让5000年都无人能识的自然数一下子浮出水面 黄小宁(通讯:广州市华南师大南区9-303 ...

  3. ReactNative出现诸如以上的错误; ** is not defined.都是没有导入相应的库.

    React Native出现诸如以上的错误; ** is not defined.都是没有导入相应的库.解决办法入下图所示:

  4. qt webview 忽略 ssl错误 ignoreSslErrors

    通过handleSslErrors,忽略ssl错误 参考: qwebview.h: #ifndef WEBVIEW_H #define WEBVIEW_H#include <QWebView&g ...

  5. matlab在sin处出现解析错误,破除“解析包时出现错误”方法大全,全部都在这了!...

    原标题:破除"解析包时出现错误"方法大全,全部都在这了! 相信许多使用Android设备的用户都会或多或少的遇到到这样的问题:解析包时出现错误.那么遇到这样的问题该如何解决? 其实 ...

  6. matlab在tic处出现解析错误,破除“解析包时出现错误”方法大全,全部都在这了!...

    原标题:破除"解析包时出现错误"方法大全,全部都在这了! 相信许多使用Android设备的用户都会或多或少的遇到到这样的问题:解析包时出现错误.那么遇到这样的问题该如何解决? 其实 ...

  7. 应用程序的组件中发生了无法处理的异常。如果单击继续,应用程序将忽略次错误并尝试继续

    打开sqlserver2008r2数据库时,提示应用程序的组件中发生了无法处理的异常.如果单击继续,应用程序将忽略次错误并尝试继续. 找到以下路径,删掉RegSrvr.xml文件. C:\Users\ ...

  8. 手机和计算机错误怎么办,手机、电脑进水了要怎么办?三种常见错误!绝大多数人都这么干!...

    原标题:手机.电脑进水了要怎么办?三种常见错误!绝大多数人都这么干! 手机与电脑逐渐成为了我们生活中不可或缺的电子产品,我们在使用的过程中,难免会出现一些意外,比如撞击.碰摔.进水等等.对于这些意外, ...

  9. java 实现中英文拼写检查和错误纠正?可我只会写 CRUD 啊!

    简单的需求 临近下班,小明忙完了今天的任务,正准备下班回家. 一条消息闪烁了起来. "最近发现公众号的拼写检查功能不错,帮助用户发现错别字,体验不错.给我们系统也做一个." 看着这 ...

最新文章

  1. 一本很好的书LearnOpenGL
  2. ArcGIS实验教程——实验三十一:ArcGIS构建泰森多边形(Thiessen Polygon)实例精解
  3. 项目管理平台(总结篇一)
  4. c语言 数据结构 多为整数带括号四则运算,用C语言实现 多位整数的四则运算,用栈,例如56*(12+20)-102/2...
  5. rsync实时同步服务部署
  6. mysql 是如何利用索引的_10 分钟搞明白 MySQL 是如何利用索引的!
  7. iOS中的KeyChain的用途
  8. 3dmax uv展开
  9. linux下思维导图软件,三款适合linux系统的超好用思维导图软件
  10. win7 此计算机无法连接到家庭组,Win7旗舰版无法进入家庭组如何处理
  11. eact Native开发IDE安装及配置
  12. 2015年天翊他爹有想法了
  13. Linux:dd命令详解(df du命令参数)
  14. 计算机图形学(十二):真实感图形(光照模型、材质模型)
  15. 配置接口IP地址并通过静态路由、默认路由配置实现全网互通!
  16. 百度服务器自动重启,百度云服务器重启的两种方法介绍
  17. 贯彻这三件事情,你将会迅速到达波澜不惊
  18. [中文版Dreamweaver.Flash.Photoshop网页制作从入门到精通(CS4版)].杨颖张永雄 pdf
  19. 南邮 | 汇编实验 3.17:用户键入“通行字”,显示欢迎界面
  20. 基于DevCloud进行黑白棋实时对战游戏开发实践【华为云至简致远】

热门文章

  1. 把导航栏和图片无缝连接
  2. OpenAI Gym 经典控制环境介绍——CartPole(倒立摆)
  3. 融合RGB与近红外“看清黑暗”,低照度成像方法:暗视觉网络(AAAI 2022)
  4. 网易大厦和他的邻居们
  5. JS计算请假时间(起始时间与终止时间可跨月)
  6. 仿豆瓣网首页(HTML+CSS)
  7. “科林明伦杯”哈尔滨理工大学第十届程序设计竞赛——J.最大值【KMP next数组】【暴力(数据太水了!)】
  8. Excel添加目录索引
  9. 一文速学数模-聚类模型(一)K-means聚类算法详解+Python代码实例
  10. 商业模式OR监管力度,真人视频社区向左OR向右?