gpt4 book ai didi

java - 在已编译的类文件中包含已弃用的消息

转载 作者:行者123 更新时间:2023-11-29 07:58:00 24 4
gpt4 key购买 nike

我希望能够向我的方法添加弃用消息,以便在打开 .class 文件时显示弃用消息。理想情况下,此消息将用于将已编译类的用户引导至替换已弃用版本的方法。

源 Java 文件

/**
* @deprecated This is the message I want displayed in the complied code
*/
@Deprecated
public void someMethod(java.lang.String couponCode) {
this.x++;
}

编译类文件

下面的代码是我使用 Intellij 12 打开 .class 文件时当前显示的内容

/**
* @deprecated
*/
@java.lang.Deprecated
public void someMethod(java.lang.String couponCode) { /* compiled code */ }

最佳答案

我觉得你运气不好。

Deprecated 注释没有任何属性,因此没有地方可以在注释中存储任何消息。编译“.java”文件时,注释(例如 javadocs)将被丢弃/不包括在内。简而言之,无法从标准 Java 工具链创建的“.class”文件中获取信息。

获得弃用注释的唯一方法是,如果 IDE 可以访问从中编译“.class”文件的“.java”文件。

(关于javac -g:source的注释有点乱,-g:source开关会导致保留额外的信息,但仅限于source行号和路径名,参数名称和类似的东西。不是完整的源代码。那太荒谬了......)


我想如果您想发挥创造力,您可以使用消息参数创建您自己的自定义“弃用原因”注释。也许用户的 IDE 会显示它,但那是特定于 IDE 的。无论如何,值得一试。

但坦率地说,您为什么不直接使用 javadoc 分发您的代码或将它们放在您的网站上呢?无论如何,程序员肯定需要那些!任何有 Java 经验的人都知道您会去 javadocs 寻找对@deprecation 的解释。

(或者更好 - 分发您的源代码!这是减少程序员挫败感/仇恨程度的好方法!)

关于java - 在已编译的类文件中包含已弃用的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16225979/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com