IDEA Inspection檢查出的不規範代碼

文檔註釋不規範:

  • @param @throws等後面必須有空格,對參數或異常須要有描述
  • @Autowired提示不推薦這樣使用,spring推薦使用構造函數注入,注入的Bean提示可使用private修飾符,以前使用的是protected
  • @date@time等標籤提示錯誤

集合初始化多餘

public class DetailController{

public detail(){
        //此處List不用初始化,使用null或建立對象初始化都會提示多餘
        List<Download> downloadList = null;
        if (newsAdvice.getIsText() == 1) {
            downloadList = downloadDao.getByData4(id);
            view.addObject("downloadList", downloadList);
        }
    }
} 

public class TestPaperController extends BaseController {

    public String checkMsg() {
        //此處msg不初始化會報錯,若是出現執行時不進入if,就會出錯
        String msg ;
        String idCard = request.getParameter("idCard");
        Applicant applicant= applicantDaoR.selectOne(idCard);
        if (applicant == null) {
            msg = "false";
        }
        return msg;
    }
}
/*
總結:
對於類中的屬性,引用類型能夠只聲明不建立對象,後續代碼中使用該屬性不會提示錯誤,編譯也經過;
這是Java多態的體系,能夠在運行時動態綁定;不初始化是能夠的。
對於集合,在定義集合以後的第一操做若是是給集合初始化,也就是賦值,那定義時的初始化時多餘的;
*/

 

無心義表達式恆爲true或false

null!=questionMap.get("options")+""
(sysMenu != null)  //sysMenu爲Map,前面經過其獲取值,若是爲空,在此以前就會保存,全部這樣提示

沒必要要的裝箱和拆箱(unnecessary unboxing )

Long.valueOf(menuId).longValue()
//在比較基本類型包裝類值的時候需注意使用equals,但賦值的時候會自動裝箱和拆箱

unchecked assignment

Map<String, Object> map = new HashMap();//如,提示將map類型變成HashMap​​​​​​​

返回值被忽略了

File saveDirFile = new File(savePath);
if (!saveDirFile.exists()) {
  saveDirFile.mkdirs();
}
//建立目錄返回bool值被忽略了,應該檢查是否建立成功

重複的變量

String path = "a";
String currentDirPath = path;//path在前面定義過了,這樣作是否有意義,好比起個別名
//或者
String[] urlname = url.split("/");
String uname = urlname[(urlname.length - 1)];//能夠直接使用數組最後一個值,不必先賦值給變量

使用最簡單的方式

//if條件中使用方法和使用表達式那種方式好,如
path.indexOf("..") >= 0
//提示表示能夠替換爲
path.contain("..");

非法表達式

@RequestMapping(value = "/checkMsg")
    @ResponseBody
    public String checkMsg() {
        String msg = "false";
        String idCard = request.getParameter("idCard");

        Applicant applicant= applicantDaoR.selectOne(idCard);
        //IDEA提示非法表達式以下  Error:(86, 60) java: 非法的表達式開始
        if (applicant != null&&1==applicant.getCheckStatus()) {
            msg = "true";

        }
        return msg;

    }

其餘

  • dereference,間接引用可能形成空指針異常,
  • 一個void方法的末尾使用return是多餘的
  • interface中的方法是用public和abstract修飾是多餘的
相關文章
相關標籤/搜索