断言
Assert.notNull(t, "entity不能为空");
字符串比较,常量放在前面
SUCCESS.equals(status)
已知对象放前
"B".equals(userType)
初始化默认值
Uses uses = new Uses;
String name = StringUtils.EMPTY;
Optional
//以前的判空
String isocode = user.getAddress().getCountry().getIsocode().toUpperCase();
if (user != null) {
Address address = user.getAddress();
if (address != null) {
Country country = address.getCountry();
if (country != null) {
String isocode = country.getIsocode();
if (isocode != null) {
isocode = isocode.toUpperCase();
}
}
}
}
//Optional判空
String result = Optional.ofNullable(user).flatMap(User::getAddress).flatMap(Address::getCountry).map(Country::getIsocode).orElse("default");
valueOf()与toString()返回相同结果时,使用前者
String s = null;
String.valueOf(s);
使用工具类StringUtils,包括对null对象的判断
System.out.println(StringUtils.isEmpty(null)); //true
System.out.println(StringUtils.isBlank(null)); //true
System.out.println(StringUtils.isNumeric(null)); //false
System.out.println(StringUtils.isAllUpperCase(null)); //false
集合赋默认值
List list = Lists.newArrayList();
先创建空集合
Map emptyMap = Collections.EMPTY_MAP;
Set emptySet = Collections.EMPTY_SET;
List emptyList = Collections.EMPTY_LIST;
集合正确判空方式
CollectionUtils.isEmpty(list);
使用注解
@NotNull : 用在基本类 型上 不能为null 但可以为空字符串
@NotEmpty : 用在集合类上 不能为空 并且长度必须大于0
@NotBlank : 只能作用在String上,不能为null,而且调用trim()后,长度必须大于0
@NonNull:在方法或构造函数的参数上使用,生成一个空值检查语句
@Nullable 表示定义的参数可以为空.
class User {
@NotNull
private Integer id;
@NotBlank
private String name;
}