3

该方法String.formatted()是 Java 13 中与文本块一起引入的新功能,可以用来代替String.format(templateString, replacement1, replacement2, ...).

编译器在使用此方法时会发出一个不和谐的警告,因为它可能会在未来的版本中再次被删除(但它也可能会保留)。

有没有办法专门禁用此编译器警告,而不用注释每个用法@SuppressWarnings("removal")或禁用所有弃用警告作为 java 编译器参数?

4

3 回答 3

0

是的,您可以绕过编译器参数抑制警告。在您的情况下,您可以使用-Xlint. -Xlint 可以与不同的属性一起使用。

-Xlint 启用所有推荐的警告。

-Xlint:all 启用所有推荐的警告。

-Xlint:none 禁用所有警告。

-Xlint:name 启用警告名称。请参阅可以使用 -Xlint 选项启用或禁用的警告部分,了解可以使用此选项启用的警告列表。

-Xlint:-name 禁用警告名称。请参阅可以使用 -Xlint 选项启用或禁用的警告部分,了解可以使用此选项禁用的警告列表。

有关更多信息,请参阅 java文档

于 2019-12-02T11:24:57.230 回答
0

简单的回答:不要这样做。如果您的项目关心弃用警告,您可能不应该使用预览功能,例如String.formatted().

事实上,该方法在 Java 14 中被移除,至少如果你不使用--enable-preview.

如果您不使用此方法,您的代码将无法编译,--enable-preview因为该方法将使用@jdk.internal.PreviewFeature(而不是@Deprecated)进行注释。

于 2019-12-17T16:47:41.553 回答
0

您可以将-Xlint:-removal参数添加到javac命令行,而不是警告,您将收到每个类的注释消息:

注意:MyClass.java 使用或覆盖标记为删除的已弃用 API。

注意:使用 -Xlint:removal 重新编译以获取详细信息。

我认为没有一个选项可以仅为 指定String.formatted()它,它是全局的。

于 2019-12-02T11:23:09.100 回答