SONARQUBE-sonarQube扫描问题整理

一、compareTo比较结果不建议用==判断,而是采用比较运算符例:

       根因:为保证代码健壮性,比较运算符结果不结果不建议使用==去判断

      处理: compareTo == -1 修改为 compareTo < 0

    

 

二、IO处理未在finally中释放流Use try-with-resources or close this "FileWriter" in a "finally" clause

        根因:IO流操作后未正确释放资源,造成资源浪费,严重可能会造成内存溢出

        处理:采用try-with-resources方式,写到try括号内,执行完try中的代码块后自动释放同时删除close()和finally代码块   

                   flush() socket.shutdownOutput()都要保留,只删除close()方法

 

"static" base class members should not be accessed via derived types

       根因:为了代码清晰起见,永远不要使用子类的名称访问父类的静态成员。这样做会造成混淆,并且可能会导致存在两个不同的静态成员的错觉。

       处理:JSONObject.parseObject(JSON.toJSONString(e)); 修改为:JSON.parseObject(JSON.toJSONString(e));

四、"Collection.isEmpty()" should be used to test for emptiness

       根因:从时间复杂度的角度看 isEmpty()的时间复杂度是 O(1), size()可能会遍历集合去获取到集合长度,时间复杂度是O(n),相比较而言 isEmpty更优秀一些

                  并且isEmpty()方法返回结果是boolean类型,可以直接进行if判断,可以让代码更简洁

      处理:List.size() == 0 修改为 list.isEmpty()

posted @ 2024-10-16 08:47  skystrivegao  阅读(0)  评论(0编辑  收藏  举报