为什么@deprecated的的RetentionPolicy是在运行?(Why the Reten

2019-09-01 00:18发布

为什么在运行时是有兴趣的人知道的方法已过时? 可有些为我提供一些例子吗?

Answer 1:

有一些框架和实例化对象的工具与他们合作。

例如,许多JavaBean的UI编辑器创建bean的实例,并与他们的用户操作他们设计UI交互。

拥有在运行时@Deprecated注释允许像这样以标志不赞成的方法,事件,用户属性的工具。



Answer 2:

你假设@deprecated只是在编译阶段(IDE,编译器)的兴趣,但它不是一个伸展到你需要的信息成像仪器的情景。

例如,一个IDE可以告诉你调用位置的方法已过时的数量,但你将如何去判断的时候你的应用程序花费在不赞成的方法的百分比是多少?



Answer 3:

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



Answer 4:

这个问题问得好,我拉伸拿出令人信服的方案。 我所有的钱是我能想象它使用了类加载器,其并没有允许使用的过时代码的应用程序。 这需要RetentionPolicy.RUNTIME

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



Answer 5:

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

有了速度 ,你可以有一个自定义Uberspector刚刚通过阅读你可以看到其中所使用的方法,你可以去和编辑它的日志中记录从Velocity模板任何方法已过时实际调用,然后。

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



Answer 6:

想象一下,你编译MyClass.class已不适用的方法。 如果您@Deprecated注释迷路了,当你从另一个调用类的这些方法您的IDE或编译器可能不会发出警告。



文章来源: Why the RetentionPolicy for @deprecated is RUNTIME?