文本块

String jsonStr ="{\\n" +
              "   \\"name\\":\\"张三\\",\\n" +
              "   \\"age\\":18\\n" +
              "}\\n";
              
 String jsonStr = """
                {
                    "name":"张三",
                    "age":38
                }
                """;

内部的特殊字符不需要转义,自动处理缩进和换行

String 相关 API 增强

建议:

举例:

String foo = null;

// 判断两个字符串是否相等:
"foo".equals(foo);
// 优于:
Objects.equals("foo", foo);
// 避免这样:
foo.equals("foo"); // 容易 NPE

// 格式化字符串:
"%s".formatted("hello");
// 优于
String.format("%s", "hello"); // 可读性稍微差一点点

// 判断字符串是否空白:
StringUtils.hasText(foo);
// 优于
foo.isBlank(); // 容易 NPE

record 记录类

基本定义(所有属性均为 private final,自带隐式全参构造方法、自带 equals() toString() hashCode() 方法,自带 accessor 方法):

public record Person(String name, int age) {
    // 编译器自动生成的构造方法:
    // public Person(String name, int age) {
    //     this.name = name;
    //     this.age = age;
    // }
}

显式规范构造方法和紧凑构造方法:

规范构造方法的定义是,构造方法的参数个数、类型和顺序,与 record 定义的字段完全一致。