1 关键字
避免出现jdk新版本中的关键字
关键字record jdk14
record Point(int x,inty){}
关键字var
var str="heelo"
2 自动类型推断
List<String> list = new ArrayList<String>(); bad smell
List<String> list = new ArrayList<>();
3 不处理方法返回值,直接返回
public SysUserEntity queryByUserName(String username) {
SysUserEntity user = baseMapper.queryByUserName(username);
return user;
}
public SysUserEntity queryByUserName(String username) {
return baseMapper.queryByUserName(username);
}
4 泛型处理最多的bad smell
@PutMapping("/audit/")
public Result audit(){
//TODO
return new Result();
}
//如果没有相应的类可以写成Object
@PutMapping("/audit/")
public Result<Object> audit(){
//TODO
return new Result<>();
}
//PageUtils类必须声明泛型
@GetMapping("/getReviewsList")
public Result<PageUtils<ReviewsVo>> getReviewsList( Map<String,Object> params){
PageUtils<ReviewsVo> page = articleReviewsService.getList(params);
return new Result<PageUtils<ReviewsVo>>().ok(page);
}
5 生成作者信息
/**
* @Description TODO
* @Author zhubuer
* @Date 2021/8/4
**/
public class DoLikesController{
}
不能包含TODO
6声明变量
//声明顺序
public static final str = "hello";
//使用驼峰标识
web_type bad smell
webType
//方法名首字母小写
public void Deal() bad smell
public void deal()
//包名不能出现大写
cn.lat.common.DTO bad smell
cn.lat.common.dto
//声明多个变量
Date cst = null, cet = null;
Date cst = null;
Date cet = null;
7多个地方使用相同字符串,声明变量
IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret);
DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
//使用变量替换
String hz = "cn-hangzhou";
IClientProfile profile = DefaultProfile.getProfile(hz, accessKeyId, accessKeySecret);
DefaultProfile.addEndpoint(hz, hz, product, domain);
8lambda表达式
list.forEach(s -> {
set.add(s.getUserId());
});
//如果只有一行语句,去除大括号
list.forEach(s -> set.add(s.getUserId()));
//map
stream().map(map -> map.getGroupId())
stream().map(LawyerHasGroupEntity::getGroupId)
9静态util类声明私有构造方法
public class DateUtil{
private DateUtil(){}
}
10 Controller声明mapping时
@RequestMapping(value = "/miniProgramLogin", method = RequestMethod.GET)
@GetMapping(value = "/miniProgramLogin")
//post换成相应的PostMapping
11方法参数最多四个
public void doSomething(int param1, int param2, int param3, String param4) {
...
}
//超过4个用对象
12字符串相加
String route = "";
for (SysDeptEntity dept : subDepts) {
route += dept.getRoute().substring(1);
}
//避免重复创建对象
StringBuilder route = new StringBuilder();
for (SysDeptEntity dept : subDepts) {
route.append( dept.getRoute().substring(1));
}