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

use*_*199 2 java java-15

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

遵循简单的线条

String str = "\s";

根据转义字符列表的官方文档,未定义 \s。

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

转义序列无效(有效的是 \b \t \n \f \r " ' \ )

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

Lev*_* M. 6

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

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

  • @user871199 [3.10.7下的语言规范。转义序列](https://docs.oracle.com/javase/specs/jls/se15/html/jls-3.html#jls-3.10.7)提到“s”作为有效的转义字符,所以会有没有错误消息。 (3认同)
  • @user871199我希望解释是开发人员忘记更新错误消息。您可以尝试联系 OpenJDK 并查看是否可以针对该消息提交错误报告。 (3认同)