在 Java 中取消不推荐的导入警告

在 Java 中,如果导入一个不推荐的类:

import SomeDeprecatedClass;

你会收到这个警告: The type SomeDeprecatedClass is deprecated

有办法压制这个警告吗?

86775 次浏览

作为一种技巧,你不能在代码中导入并使用完全限定名。

您还可以尝试 javac-Xlint:-depreation,但不确定这是否能解决这个问题。

在类或方法上使用这个注释:

@SuppressWarnings("deprecation")

从 Java9开始,您可能需要添加:

@SuppressWarnings("removal")

如果类被注释为:

@Deprecated(since = "3.14", forRemoval = true)

假设您正在用一个不推荐的方法(比如 java.sql.ResultSet中的 getUnicodeStream(String columnLabel))重写/实现一个接口,那么您不会仅仅通过使用注释 @SuppressWarnings( "deprecation" )来消除不推荐的警告,除非您也使用 @Deprecated注释来注释相同的新方法。这是合乎逻辑的,因为否则您可以通过覆盖其接口描述来 没有贬低的意思方法。

我通过将导入改为:

import package.*

然后用 @SuppressWarnings("deprecation")注释使用弃用类的方法

为了避免警告: 做 没有导入类

而是使用完全限定类名

在尽可能少的地方使用。

你可使用:

Java-Xlint:-弃用

但是,这将给您提供警告,并告诉您代码中导致弃用或使用弃用 API 的部分。现在,您可以使用这些警告运行代码,或者对代码进行适当的更改。

在我的例子中,我使用的是 someListItem.addItem("red color"),而编译器希望我使用 someListItem.add("red color");

如果 @SuppressWarnings("deprecation")不像我一样为你工作。你可以在声纳皮棉插件中找到准确的鱿鱼数量。然后您可以简单地抑制警告: @SuppressWarnings("squid:CallToDeprecatedMethod")

enter image description here