2009-10-24 54 views

回答

2

您认为@deprecated仅在编译阶段(IDE,编译器)感兴趣,但对于需要该信息的映像检测场景而言,这不是一个延伸。

例如,IDE可以通知您已弃用方法的呼叫站点数量,但您将如何确定应用程序在弃用方法中所花费的时间百分比?

+2

RetentionPolicy.Class就足够了。 – Jorn 2010-09-17 13:56:12

1

想象一下,使用不建议的方法编译MyClass.class。如果您的@Deprecated注释丢失了,当您从另一个类调用这些方法时,IDE或编译器无法警告您。

+4

RetentionPolicy.Class就足够了。 – meriton 2009-10-24 18:41:47

+0

嗯,那是真的...... – sinuhepop 2009-10-28 17:07:18

1

一个人的运行时间是另一个人的设计时间,例如,编写使用API​​的代码时。

+0

呃...你是怎么意思的?当我使用API​​时,我不通过调试器访问该API。我使用那个api的类文件,但是由RetentionPolicy.Class覆盖。 – meriton 2009-10-24 18:51:07

+0

例如,使用IDE调色板中的GUI组件并将它们放在窗体上时,将运行该代码。 – JRL 2009-10-24 18:58:21

1

很好的问题,我正在想出一个令人信服的场景。我得到的是我可以想象一个使用类加载器的应用程序,它不允许使用已弃用的代码。这将需要RetentionPolicy.RUNTIME

这就是我的一切......

1

夫妇实际用途浮现在脑海:

随着Velocity,你可以有一个自定义Uberspector该服务将来自Velocity模板实际调用任何过时的方法和然后通过阅读日志,你可以看到方法的使用位置,你可以去编辑它。

随着Wicket,你可以有哪些不允许实例基础上,.class内容有任何类,所以它可能是可能使防止@Deprecated类的实例化的系统,如果你不是一个管理员的安全策略。

+0

关于这两点,仍然可以在编译时检查它们。依赖检查应该做的窍门,不知道如果我明白你上面说的 – Ravisha 2015-04-02 09:34:50

4

有一些框架和工具可以实例化对象以使用它们。

例如,许多JavaBean UI编辑器创建bean的实例并在用户操纵正在设计的UI时与它们交互。

使@Deprecated注解在运行时可用,允许诸如此类的工具为用户标记弃用的方法,事件和属性。

相关问题