在 Java 中,如果导入一个不推荐的类:
import SomeDeprecatedClass;
你会收到这个警告: The type SomeDeprecatedClass is deprecated
The type SomeDeprecatedClass is deprecated
有办法压制这个警告吗?
作为一种技巧,你不能在代码中导入并使用完全限定名。
您还可以尝试 javac-Xlint:-depreation,但不确定这是否能解决这个问题。
在类或方法上使用这个注释:
@SuppressWarnings("deprecation")
从 Java9开始,您可能需要添加:
@SuppressWarnings("removal")
如果类被注释为:
@Deprecated(since = "3.14", forRemoval = true)
假设您正在用一个不推荐的方法(比如 java.sql.ResultSet中的 getUnicodeStream(String columnLabel))重写/实现一个接口,那么您不会仅仅通过使用注释 @SuppressWarnings( "deprecation" )来消除不推荐的警告,除非您也使用 @Deprecated注释来注释相同的新方法。这是合乎逻辑的,因为否则您可以通过覆盖其接口描述来 没有贬低的意思方法。
java.sql.ResultSet
getUnicodeStream(String columnLabel)
@SuppressWarnings( "deprecation" )
@Deprecated
我通过将导入改为:
import package.*
然后用 @SuppressWarnings("deprecation")注释使用弃用类的方法
为了避免警告: 做 没有导入类
而是使用完全限定类名
在尽可能少的地方使用。
你可使用:
Java-Xlint:-弃用
但是,这将给您提供警告,并告诉您代码中导致弃用或使用弃用 API 的部分。现在,您可以使用这些警告运行代码,或者对代码进行适当的更改。
在我的例子中,我使用的是 someListItem.addItem("red color"),而编译器希望我使用 someListItem.add("red color");。
someListItem.addItem("red color")
someListItem.add("red color");
如果 @SuppressWarnings("deprecation")不像我一样为你工作。你可以在声纳皮棉插件中找到准确的鱿鱼数量。然后您可以简单地抑制警告: @SuppressWarnings("squid:CallToDeprecatedMethod")
@SuppressWarnings("squid:CallToDeprecatedMethod")