sonar常見問題分析
1.Equality tests should not be made with floating point value
程式碼舉例: if (result == num) //result和num均為double 之間比較會有精度損失
解決:BigDecimal data1 = new BigDecimal(totalArea);
BigDecimal data2 = new BigDecimal(s1);
int num = data1.compareTo(data2);//num =0 相等 >0前者大於後者 ,反之 <0 前者小於後者
2.This class overrides "equals()" and should therefore also override "hashCode()".
程式碼舉例:public boolean equals(Object obj){...} //需要新增對應的hashCode方法
解決:可以新增一個最簡單的hashCode方法
public int hashCode() {return 0;}
3.Synchronize on a new "Object" instead
程式碼舉例:synchronized ("例項化") {...} //裡邊必須是物件
解決: private Object obj ="例項化";
synchronized (obj ) {...}
4.Close this"FileInputStream" in a "finally" clause.
解決方法: 在finally中關閉FileInputStream,主要是關閉方式不對,finally程式碼塊中,應該要對每個stream進行單獨關閉,而不能統一寫在一個try-catch程式碼中。
5.A"NullPointerException" could be thrown; "tom" is nullablehere
空指標,解決方式:先判斷或者先例項化,再訪問裡面的屬性或者成員。
6.Makethis IP "127.0.0.1" address configurable
解決方法:不要把IP地址寫在此類中,應該在對應的系統檔案或者相應的配置檔案中配置
7.Either log or rethrow this exception.
解決方法: 把對應的輸出寫成Logger.error("aaa“);的形式 。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31543790/viewspace-2564121/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 如何分析Sonar常見問題?
- 訊息佇列常見問題分析佇列
- MyCAT的常見問題分析和解決
- Jedis介紹及常見問題分析
- 【Nginx】常見問題Nginx
- js常見問題JS
- CSS常見問題CSS
- Git 常見問題Git
- PHP 常見問題PHP
- swiper常見問題
- nginx 常見問題Nginx
- java 常見問題Java
- MyBatis常見問題MyBatis
- 前端常見問題前端
- Git常見問題Git
- SQLServer常見問題SQLServer
- css 常見問題CSS
- HTML常見問題HTML
- PyMongo 常見問題Go
- xhtml常見問題HTML
- UITableview 常見問題UIView
- mysql常見問題MySql
- MySQL 常見問題MySql
- BlockUI常見問題BloCUI
- 恆訊科技分析:香港vps常見問題
- LightDB Canopy 常見報錯問題分析(一)
- 軟體專案管理常見問題分析(轉)專案管理
- 常見的Checkpoint not complete問題分析解決
- JS中的This別再被問倒了,面試常見問題分析JS面試
- Oracle常見問題一千問Oracle
- 網易iTownSDK常見問題
- weex常見問題解析
- Linux 常見問題Linux
- Redis面試常見問題Redis面試
- 常見面試SQL問題面試SQL
- 前端常見問題整理前端
- ReactNative常見問題React
- Devexpress常見問題devExpress