该方法String.formatted()是 Java 13 中与文本块一起引入的新功能,可以用来代替String.format(templateString, replacement1, replacement2, ...).
编译器在使用此方法时会发出一个不和谐的警告,因为它可能会在未来的版本中再次被删除(但它也可能会保留)。
有没有办法专门禁用此编译器警告,而不用注释每个用法@SuppressWarnings("removal")或禁用所有弃用警告作为 java 编译器参数?
是的,您可以绕过编译器参数抑制警告。在您的情况下,您可以使用-Xlint. -Xlint 可以与不同的属性一起使用。
-Xlint 启用所有推荐的警告。
-Xlint:all 启用所有推荐的警告。
-Xlint:none 禁用所有警告。
-Xlint:name 启用警告名称。请参阅可以使用 -Xlint 选项启用或禁用的警告部分,了解可以使用此选项启用的警告列表。
-Xlint:-name 禁用警告名称。请参阅可以使用 -Xlint 选项启用或禁用的警告部分,了解可以使用此选项禁用的警告列表。
有关更多信息,请参阅 java文档。
简单的回答:不要这样做。如果您的项目关心弃用警告,您可能不应该使用预览功能,例如String.formatted().
事实上,该方法将在 Java 14 中被移除,至少如果你不使用--enable-preview.
如果您不使用此方法,您的代码将无法编译,--enable-preview因为该方法将使用@jdk.internal.PreviewFeature(而不是@Deprecated)进行注释。
您可以将-Xlint:-removal参数添加到javac命令行,而不是警告,您将收到每个类的注释消息:
注意:MyClass.java 使用或覆盖标记为删除的已弃用 API。
注意:使用 -Xlint:removal 重新编译以获取详细信息。
我认为没有一个选项可以仅为 指定String.formatted()它,它是全局的。