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修饰是多余的
相关文章
相关标签/搜索