为什么 java 编译器不抱怨“\s”?

Why is java compiler not complaining about "\s"?

在 openjdk 版本“15”2020-09-15 上试用

下面的简单行

String str = "\s";

根据list of escape characters的官方文档,\s没有定义。

Spring 工具套件不显示 '\s' 的编译错误,当我使用 maven 在命令行上编译时也不显示。任何其他字符如 \p 都会导致以下与官方文档匹配的错误。

Invalid escape sequence (valid ones are \b \t \n \f \r " ' \ )

为什么 java 编译器不抱怨 \s?在控制台上打印结果字符串表明它正在输出 space 字符 (0x20),看起来它正在识别它,但只是没有记录。

这是 Java15 中的新转义序列:
https://docs.oracle.com/en/java/javase/15/text-blocks/index.html

您链接的教程适用于 Java 8,但您使用的是 JDK 15。

\s 是 Java SE 15 中的有效转义序列,如 String#translateEscapes 文档所述:

您提到的错误消息肯定是一个错误。