显示不推荐使用的同类警告

菲尔294

使用eclipse时,我想在任何使用的方法标记为时看到警告@Deprecated如果正确,方法调用将被正确删除,但是如果该方法源自同一类,则eclipse不会发出警告。请参见下面的屏幕截图。

Eclipse_warnings

为了更好地重现,我还将以文本形式提供代码:

/* MainClass.java */
public class MainClass {
    public static void main(String[] args) {
        MainClass.foo();
        MemberClass.foo();
        OtherClass.foo();
    }
    @Deprecated
    public static void foo() {
        return;
    }
    private static class MemberClass {
        @Deprecated
        protected static void foo() {
            return;
        }
    }
}

/* OtherClass.java */
public class OtherClass {
    @Deprecated
    public static void foo() {
        return;
    }
}

而仅OtherClass.foo()生成警告。为什么?我怎样才能解决这个问题?

  • Enable project specific settings 已停用
  • Window-> Preferences-> Java-> Compiler-> Errors/Warnings->Deprecated and restricted API如果完全设置为Warning,如上图所示。

注意:Eclipse没有显示过时的警告吗?相关

斯图尔特·马克斯

@Deprecated注释的确切定义不在javadoc中,而实际上在Java Language Specification的9.6.4.6节中。

从本质上讲,它表示不赞成使用的元素将生成警告,除非

使用和声明都在同一最外层类中。

由于MainClass.foo()MemberClass.foo()都在内MainClass,并且您对其的调用也在内MainClass,因此不会生成警告。

对的调用OtherClass.foo()不在同一最外层类中,因此将生成警告。

我相信此规则的原因是,可以假定最外层或顶级类中的代码可以一起维护和演化。使某个元素过时通常是一个信号,指示“外部”进行编码(可能由其他人维护),表明该元素将发生某些事情。通常,不同的规则适用于一个班级。在内部使用已弃用的元素(例如私有元素)可能会很好。

编译器或IDE发出JLS要求之外的其他警告可能是合法的,例如在同一最外层类中使用不赞成使用的元素。不过,我不知道有任何系统可以做到这一点。

但是您使用的是Eclipse,并且我确信它以及其他IDE可以轻松找到类中某个元素的所有用法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

禁止使用Java中不推荐的导入警告

不推荐使用getAdapterPosition()

警告:不推荐使用Assert类型的assertEquals方法

不推荐使用JsonParser

不推荐使用setBackgroundDrawable()

Xcode不再显示不推荐使用的警告

不推荐使用NameValuePair

警告:不推荐使用[history] pushState;使用推送代替

Nim警告:不推荐使用,改用什么?

不推荐使用KeyPairGeneratorSpec

不推荐使用setTabSFromPagerAdapter

如何获取不推荐使用的接口功能以停止显示编译器警告?

不推荐使用crashActionView()

该警告来自何处:警告:不推荐使用递归,请改用递归

Python警告:不推荐使用plotly.graph_objs.Line

在pytorch中追溯不推荐使用的警告

熊猫:不推荐使用警告:逐元素比较失败

R中的getSymbols不推荐使用警告消息'indexClass <-'

xcode中不推荐使用的警告以及如何处理不推荐使用

不推荐使用UIPopoverController

如何隐藏“不推荐使用:mysql_connect()”警告?

不推荐使用setBackgroundColor

弃用警告:不推荐使用未处理的承诺拒绝

为什么人们不推荐使用 PdfRenderer 显示 PDF?

警告消息:如何删除不推荐使用的“withUnsafeMutableBytes”和不推荐使用的“withUnsafeBytes”?

警告:componentWillReceiveProps 已重命名,不推荐使用

弃用警告:不推荐使用 Model.scoped

不推荐使用警告消息“getDefaultMiddleware”

不推荐使用的命令的 SBT 警告