【发布时间】:2018-10-22 11:52:12
【问题描述】:
我看到了很多using the Deprecated annotation on APIs 的示例,以便将它们标记为“需要尽快更换”。
但是,在几乎所有这些情况下,代码开发人员不仅继续使用已弃用的 API,而且还继续使用 suppressed the deprecation warning。
似乎 API 开发人员的最佳意图最终会创建更多与实现的业务逻辑无关的代码 - 如果 API 已被弃用但继续使用且相关警告被抑制,这似乎是代码的退化在最坏的情况下替换已弃用的库时,充其量是一个潜在的应用程序断点。
这个问题有实用的解决方案吗?至少,如果它确实在 CR 中停留了相对较长的时间,是否可以将这种情况标记为代码异味?
请建议您可能正在使用的实际解决方案(库、SCA、CR 插件等.....)
是否有任何计划中的 JRE/JDK 功能可能有助于解决这种情况?我的研究目前没有发现任何东西。
参考文献:
【问题讨论】:
-
实际上在函数被弃用一段合理的时间后删除它们。在代码库中保留已弃用的函数本身就是一种反模式。
-
@ElliottFrisch :很好的推荐,但我不想遵循已弃用方法的代码中的生命周期。关于如何自动检测弃用“超时”的任何想法?
-
@RannLifshitz 您可以添加关于何时弃用该方法的评论;但理想情况下,您没有必须弃用许多方法。
-
@ElliottFrisch:如何配置 SCA 服务器以将已弃用的 API/已弃用的 API 调用标记为阻止程序问题,大约在插入 CR 6 个月后?
标签: java deprecated suppress-warnings deprecation-warning