1、用String.format()模版拼接字符串

场景: 当需要拼接多个字符串时,尽量避免通过 + 号来拼接字符串,因为其会导致代码变得冗长和难以阅读,让阅读者需要花时间去明白最终的拼接结果。
解决: 使用 String.format() 方法来拼接字符串,该方法第一个参数需要传入一个模版,后续参数传入模版所需要的参数。再把模版放入常量类中进行统一管理,方便下次修改模版。
例子: 要拼接字符串 "[shao][rui][lin]" ,其中”shao”、”rui”、”lin”是会变的。

  1. public void example() {
  2. String s1 = "shao";
  3. String s2 = "rui";
  4. String s3 = "lin";
  5. //不易阅读的写法
  6. String nameSchema = "[" + s1 + "][" + s2 + "][" + s3 + "]";
  7. //容易阅读的写法
  8. String template = "[%s][%s][%s]";//最好将这个变量放入常量类中进行统一管理
  9. String bestNameSchema = String.format(template, s1, s2, s3);
  10. }

2、用Objects.isNull()判空或者是Objects.nonNull()判非空

场景: 当需要判断一个对象是否为空的时候,尽量不要使用 object == nullobject != null 来进行判断,虽然这样确实可以实现功能,但是其意思并不直观。
解决: 判断对象为空使用 Objects.isNull() ,当传入参数为空时,返回true;判断对象非空时使用 Object.nonNull(),当传入参数非空时,返回true;
例子: 判断对象entity是否为空。

  1. public void example() {
  2. Entity entity = new Entity();
  3. if (Objects.isNull(entity)) {
  4. System.out.println("entity为空");
  5. }
  6. }

3、用StringUtils.isBlank()判断字符串是否为空、是否为空串、是否均为空白字符。

场景: 当需要判断一个字符串对象是否为空、是否为空串、是否为空白字符: " " ,就是字符串为一串空格时,尽量不要用 str != null && str.size() > 0 这种类似操作来判断。
解决: 使用 StringUtils.isBlank() 来判断字符串是否为空、是否为空串、是否均为空白字符,该写法易于理解,且精炼。
例子:

  1. public void example() {
  2. String str = " ";
  3. if (StringUtils.isBlank(str)) {
  4. System.out.println("字符串str为空串");
  5. }
  6. }

4、用StringUtils.equals()来判断两个字符串是否相等

场景: 当需要判断两个字符串是否相等时,不能使用 str1 == str2 ,因为这比较的是二者的地址是否相等,也可使用 str1.equals(str2) 来判断两个字符串是否相等,但是使用的时候必须要判断 str1 是否为空。
解决: 使用 StringUtils.equals(str1, str2) 来判断两个字符串对象是否相等。如果str1和str2相等或者两者均为null,都会返回true。
例子:

  1. public void example() {
  2. String str1 = "ruilin.shao";
  3. String str2 = "ruilin.shao";
  4. if (StringUtils.equals(str1, str2)) {
  5. System.out.println("字符串相等");
  6. }
  7. }

5、用CollectionUtils.isEmpty()判断集合对象是否为空以及长度是否为0

场景: 需要判断集合是否为空且长度大于0时,最好不要用 list != null && list.size() > 0 ,该写法长且意思表达不明显。
解决: 使用 CollectionUtils.isEmpty(list) 来判断对象是否为空或者长度为0,当对象为空且长度为0时,会返回true
例子:

  1. List<String> list = new ArrayList<>();
  2. CollectionUtils.isEmpty(list);//当list为空且size为0时返回true
  3. CollectionUtils.isNotEmpty(list);//当list不为空且size>0时返回true,其实就是!ConllectionUtils.isEmpty(list)