所以我与一些人进行了长时间的争论,并且他们一直在争论他们自己的代码约定。 根据它,他们说如果有一种方法,你在编写你认为它应该被弃用的东西。你只需删除它,改变它已被使用的地方,通知其他人,让他们也改变他们的东西。
如果java人只是删除了Date类而不是弃用它,那么他们会不同意。
即使我错了,我也希望对事实有一个很好的解释。 一些额外的事实或链接会很棒。
答案 0 :(得分:2)
这可能适用于Programmers。
如果您正在制作其他人使用的库,则新版本不应打破现有代码。只有经过重大修订后,例如从3.8.7到4.0,您可能需要用户重新编码。请注意,其他错误修复可能会进行分支,后端移植到新的3.8.8。
请注意其他人可能还会使用其他库,这些库也会使用您的库。因此,向后兼容意味着人们可以升级而无需等待升级使用您库的库。
对于本地公司的内部库,删除旧的API可能更具吸引力,确保公司中的每个人都切换到新代码。
@Deprecated
本地仍有一些用途:
我曾经有一个带有long
参数的方法,在新版本中会Object
。我是在图书馆做到的:
/**
* Please replace the long parameter with the Object ...
*/
@Deprecated
public boolean f(long x) { ... }
public boolean f(Object x) { ... }
除了新功能中的丑陋if (x instanceof Long) { return fOld(((Long)x).longValue()); }
外,删除旧版本对于所有库使用都是致命的。
因此,弃用可能会提供有关替换呼叫的内容的javadoc信息。通常在IDE中显示为弹出窗口。
答案 1 :(得分:1)
从现在开始使用Java,我刚刚看到一篇关于java中被弃用的东西的条款,并且发现它完全有效,
条款是
但是,这是一个非常罕见的案例,Java人员必须通过将任何内容标记为已弃用来删除某些东西。不赞成使用的标志只是说它不应该在将来使用。 如果考虑与向后兼容性相关的问题,它也是有效的。
在自己写一些api的背景下,你可能有自己的情况。