在Java中隐藏过时的导入警告

jdg4fx2g  于 2022-10-30  发布在  Java
关注(0)|答案(7)|浏览(195)

在Java中,如果导入不赞成使用的类:

import SomeDeprecatedClass;

您将收到以下警告:The type SomeDeprecatedClass is deprecated
是否有办法抑制此警告?

vs3odd8k

vs3odd8k1#

若要避免警告:* 不 * 导入该类

改为使用完全限定类名

并在尽可能少的地方使用它。

djp7away

djp7away2#

在类或方法上使用以下注解:

@SuppressWarnings("deprecation")

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

@SuppressWarnings("removal")

如果类的注解类似于:

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

ffx8fchx3#

作为一个黑客,你不能做导入和使用代码内的完全限定名。
您也可以尝试javac -Xlint:-deprecation,但不确定是否可以解决这个问题。

umuewwlo

umuewwlo4#

我通过将导入更改为以下内容解决了此问题:

import package.*

然后用@SuppressWarnings("deprecation")注解使用过时类的方法

jjhzyzn0

jjhzyzn05#

假设你用一个过时的方法(比如java.sql.ResultSet中的getUnicodeStream(String columnLabel))来覆盖/实现一个接口,那么你不会仅仅通过使用@SuppressWarnings( "deprecation" )注解来消除过时警告,除非你也用@Deprecated注解了同一个新方法。这是合乎逻辑的,因为否则你可以通过覆盖一个方法的接口描述来 * unprecate * 它。

dtcbnfnu

dtcbnfnu6#

您可以用途:

  • FileName.java Xlint:-不赞成使用
    但是这样会给予你警告,并且告诉你代码中导致不推荐使用的部分或者使用了不推荐使用的API。现在你可以运行代码时显示这些警告,或者对代码进行适当的修改。
    在我的例子中,我使用的是someListItem.addItem("red color"),而编译器希望我使用someListItem.add("red color");
1dkrff03

1dkrff037#

如果@SuppressWarnings("deprecation")不适合你,就像我一样。你可以在声纳lint插件中找到确切的乌贼数量。然后你可以简单地抑制警告:@SuppressWarnings("squid:CallToDeprecatedMethod")

相关问题