我编译了我的程序,我收到以下错误。我该如何解决?
Note: ClientThreadClients.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
答案 0 :(得分:17)
您应该做的是做警告信息所说的内容。使用-Xlint:deprecation
选项重新编译该类。
编译器将告诉您正在使用或覆盖的已弃用的API。
(或者,如果你向我们展示了这个类的源代码,我们可能会为你发现问题......或者自己编译它。)
但是我要猜测你正在使用Thread
类中不赞成使用的方法之一:
countStackFrames()
destroy()
pause()
resume()
stop()
stop(Throwable)
suspend()
这些方法不可靠,不安全或两者兼而有之。强烈建议您不要使用它们。阅读此解释:"Why are Thread.stop, Thread.suspend and Thread.resume Deprecated?“。
一旦确定了导致问题的API,就有两种方法可以“解决”错误。
您可以阅读已弃用的API的javadoc,以找出为什么不推荐使用。然后根据javadocs所说的内容和上下文,您可以找到一种方法来替换代码对已弃用元素的使用。
您可以使用@SuppressWarnings("deprecation")
注释告诉编译器“保持安静”。这通常是一个坏主意:
答案 1 :(得分:4)
步骤1:找出代码使用的弃用API。如果您使用现代IDE(eclipse或类似工具),则会清楚标记已弃用的代码,通常使用删除线字体。如果从命令提示符编译,则在编译时将-Xlint:deprecation
添加到命令行。
步骤2.阅读弃用API的文档,了解如何替换它。