显示同一类方法的已弃用警告

2024-01-05

使用 eclipse,我希望尽快看到警告any我使用的方法标记为@Deprecated。如果是这样,方法调用将被正确划掉,但如果该方法源自同一个类,则 Eclipse 不会发出警告。请参阅下面的屏幕截图。

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

/* 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,从上图可以看出。

Note: Eclipse 没有显示已弃用警告? https://stackoverflow.com/questions/22855836/eclipse-not-showing-deprecated-warning is not related


的确切定义@Deprecated注释不在 javadoc 中,但实际上在Java语言规范 https://docs.oracle.com/javase/specs/jls/se8/html/jls-9.html#jls-9.6.4.6,第 9.6.4.6 节。

本质上,它表示使用已弃用的元素将生成警告unless

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

Since MainClass.foo() and MemberClass.foo()都在MainClass,并且您对他们的呼叫也在MainClass,不会生成任何警告。

致电给OtherClass.foo()不在同一个最外层类中,因此会生成警告。

我相信这条规则的原因是,可以假定最外层或顶级类中的代码是一起维护和发展的。弃用某个元素通常是向“外部”(可能由其他人维护)编码的信号,表明该元素将发生某些情况。通常在一个类中应用不同的规则。内部使用已弃用的元素(例如私有元素)可能完全没问题。

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

显示同一类方法的已弃用警告 的相关文章

随机推荐

  • 在 Web 开发过程中,我将花费多少时间用于用户输入验证?

    我是网络开发新手 到目前为止 我花了很多时间 50 左右 来尝试阻止坏人将 sql 注入之类的东西放入我的输入表单中并在服务器端验证它 这是正常的吗 Jeremy 一些 PHP 细节 当涉及数据库查询时 请始终尝试使用准备好的参数化查询 这
  • 如何进入 CoreDNS pod kubernetes?

    我有一个正在运行的 k8s 集群 其中包含两个 CoreDNS 副本 但是当我尝试输入 POD 的 bash 提示符时 它向我抛出以下错误 kubectl exec it coredns 5644d7b6d9 285bj n kube sy
  • joomla(2.5)系统插件安装时加载语言文件

    在安装系统插件 在 Joomla 2 5 中 期间 我很难显示本地化字符串 xml 文件中本地化字符串的 正常 方式似乎不起作用 请参阅另一个问题 基于语言的安装描述 https stackoverflow com questions 11
  • 如何跨应用程序限制内容提供商数据

    我们如何确保某些应用程序无法访问存储在内容提供商中的我的数据 而某些其他应用程序可以访问该数据 基本上 我需要允许我感兴趣的某些应用程序访问存储在内容提供程序中的数据 但我不希望所有应用程序都能够访问该数据 我怎样才能实现这个目标 Than
  • 获取代码点的所有 Unicode 别名

    The charnames https metacpan org pod charnames杂注提供charnames viacode返回给定代码点的 最佳 名称 例如 perl Mcharnames full E say charname
  • 使用插件系统的 Netbeans 平台应用程序

    我正在编写一个 Netbeans 平台应用程序 我想在该应用程序处于开发状态时将其提供给客户 并且每当特定模块有更新时 我想以客户可以使用 netbeans 插件更新程序来更新模块的方式处理它 因此 我将获得一台服务器来托管不同的模块 签署
  • (iphone)将子视图的框架设置在超级视图的边界之外?

    我注意到我可以将子视图放置在超级视图的边界之外 部分或全部 我想知道这是否可以接受 因为这在通常的 iPhone 视图编程中似乎是不正常的 谢谢 这是可以接受的 有时甚至是常见的做法 例如 滚动视图或其他 复合 视图的自定义实现通常会将对象
  • 在Python中对多维数组进行排序的适当数据结构?

    我有各种字符串 单词 的三个数值 权重 计数 贡献 我想将它们组织成一个多维数组 然后进行排序 为此 我在字典中创建了列表 其中数值位于列表中 字符串是键 print dictionary word weight count contrib
  • 编写自己的异步方法

    我想知道如何以 正确 的方式编写自己的异步方法 我看过很多解释异步 等待模式的帖子 如下所示 http msdn microsoft com en us library hh191443 aspx http msdn microsoft c
  • 什么是域错误

    在 C 中 有一个 域错误 的基类 std domain error 我不明白在什么情况下我应该在代码中抛出域错误 所有其他异常基类都非常不言自明 我很确定 std domain error 本身与互联网域名无关 因此请解释域错误是什么类别
  • 如何用intellij中的空格序列替换文件中的所有制表符?

    给定项目中的一个文件 我希望能够用空格替换文件中的所有制表符 intellij 有什么办法可以做到这一点吗 转到编辑 转换缩进 然后分别选择 到空格 或 到制表符 它在文档中 改变缩进 http www jetbrains com idea
  • Python 是否内置了针对特殊字符和/或标点符号的字符串验证?

    Python 有str isalnum str isdigit str isupper str islower str isalpha 但是它是否有任何内置的字符串验证检查特殊字符或标点符号 即 等 标准string模块提供string p
  • 如何以编程方式获取Linux进程的堆栈起始地址和结束地址?

    对于单线程程序 我想检查给定的虚拟地址是否在进程的堆栈中 我想在用 C 编写的进程中执行此操作 我正在考虑读书 proc self maps找到标记为 stack 的行 以获取进程堆栈的开始和结束地址 思考这个解决方案让我产生了以下问题 p
  • java系统范围的键盘和鼠标状态

    有没有办法在系统范围内侦听鼠标和键盘事件 而不将它们从系统队列中取出 例如 有没有办法设置一个恶魔 比如说 它会监听并报告每个键盘和鼠标事件 使用纯Java 是不可能的 但是您可以使用 JNI Java 本机接口 它适用于用 C 编写并本机
  • UPDATE 语句包含在 IF EXISTS 块中

    我正在尝试编写一个更新列的 DML 脚本 但我想确保该列首先存在 因此我将其包装在 IF EXISTS 块中 IF EXISTS SELECT FROM INFORMATION SCHEMA COLUMNS WHERE TABLE NAME
  • 如果消息被编辑,防咒骂系统将不起作用

    基本上 如果您说了一些不是脏话的内容 但随后将消息编辑为脏话 机器人将不会检测到它 我该如何解决 这是我的代码 client event async def on message message if message author bot
  • 通过选择散点图上的点来更新虚线表

    我正在制作仪表板 这是我的代码 IMPORT SECTION import dash import dash table import dash core components as dcc import dash html compone
  • 非静态类与静态类相比有哪些优点?

    非静态类与静态类相比有哪些优点 静态类不需要实例化 所以我们可以直接使用ClassName MemberName 那么非静态类有什么用呢 静态类与非静态类基本相同 但有一个区别 静态类不能被实例化 换句话说 不能使用new关键字来创建类类型
  • Sublime Text 3 上的 Python 3.4

    我按照以下步骤在 Sublime Text 3 上运行 Python 3 选择菜单 工具 gt 构建 gt 新建构建系统 我输入了以下内容 cmd python3 file selector source python file regex
  • 显示同一类方法的已弃用警告

    使用 eclipse 我希望尽快看到警告any我使用的方法标记为 Deprecated 如果是这样 方法调用将被正确划掉 但如果该方法源自同一个类 则 Eclipse 不会发出警告 请参阅下面的屏幕截图 为了更好地重现 我还将提供文本形式的