文档注释不规范:
- @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修饰是多余的