为什么在运行时有人想知道某个方法已被弃用?有些人能为我提供一些例子吗?为什么@deprecated的RetentionPolicy是RUNTIME?
回答
您认为@deprecated仅在编译阶段(IDE,编译器)感兴趣,但对于需要该信息的映像检测场景而言,这不是一个延伸。
例如,IDE可以通知您已弃用方法的呼叫站点数量,但您将如何确定应用程序在弃用方法中所花费的时间百分比?
很好的问题,我正在想出一个令人信服的场景。我得到的是我可以想象一个使用类加载器的应用程序,它不允许使用已弃用的代码。这将需要RetentionPolicy.RUNTIME
。
这就是我的一切......
夫妇实际用途浮现在脑海:
随着Velocity,你可以有一个自定义Uberspector该服务将来自Velocity模板实际调用任何过时的方法和然后通过阅读日志,你可以看到方法的使用位置,你可以去编辑它。
随着Wicket,你可以有哪些不允许实例基础上,.class
内容有任何类,所以它可能是可能使防止@Deprecated
类的实例化的系统,如果你不是一个管理员的安全策略。
关于这两点,仍然可以在编译时检查它们。依赖检查应该做的窍门,不知道如果我明白你上面说的 – Ravisha 2015-04-02 09:34:50
有一些框架和工具可以实例化对象以使用它们。
例如,许多JavaBean UI编辑器创建bean的实例并在用户操纵正在设计的UI时与它们交互。
使@Deprecated注解在运行时可用,允许诸如此类的工具为用户标记弃用的方法,事件和属性。
- 1. 什么是@deprecated in java的反向
- 2. 什么是Delphi XE2 VCL Runtime BPL?
- 3. 为什么@FunctionalInterface具有RUNTIME保留?
- 4. 为什么所有的Angular 2.0 DI API都被标记为@deprecated?
- 5. @deprecated vs @Deprecated
- 6. 什么是@Deprecated在Java中的.NET等价物?
- 7. 为什么不是@Deprecated注释触发有关方法的编译器警告?
- 8. 为什么@Deprecated在这里不起作用?
- 9. 反射库是否忽略RetentionPolicy
- 10. 什么是采取MS Access Runtime到Mac最经济的方法?
- 11. 什么是babelRelayPlugin,transform-runtime,passPerPreset呢? (巴贝尔+的WebPack配置)
- 12. Go语言中runtime-gdb.py的作用是什么?
- 13. Java - 为什么System和Runtime类具有相同的方法?
- 14. mysql_ deprecated
- 15. Specflow插件(Runtime,Generator,Runtime/Generator)的三种类型有什么区别?
- 16. runtime - 在class_addMethod中,这个“@@:”是什么意思?
- 17. 为什么这个RELEASE不会产生RUNTIME ERROR?
- 18. 为什么在Visual Studio 2010中安装了F#Runtime?
- 19. Java Runtime exec()行为
- 20. 在接口上使用@Deprecated表示法有什么好处?
- 21. @Deprecated对方法参数和局部变量有什么意义?
- 22. Titanium.Platform.id DEPRECATED in 1.8.0
- 23. actionbar setnavigationmode deprecated
- 24. Hibernate:MethodConstraintViolation is deprecated
- 25. 道场DEPRECATED dojo.moduleUrl
- 26. Pear Error Deprecated
- 27. Titanium.Ti.Media.VideoPlayer.movieControlMode DEPRECATED
- 28. web.config> configuration> runtime> assemblyBinding中生成条目的含义/原因是什么?
- 29. “Apache Portable Runtime的关闭失败”日志消息是什么意思?
- 30. 为什么unix和Java RunTime显示的统计信息有差异
RetentionPolicy.Class就足够了。 – Jorn 2010-09-17 13:56:12