不推荐使用Component.move(int,int)但仍然使用它

时间:2017-05-20 12:39:05

标签: java awt move deprecated

尝试创建一个单击并拖动GUI,我不小心覆盖了我的子类中的Component.move。每当调用Component.setLocation时,这样做会导致堆栈溢出。

重命名我的移动方法后,这并没有发生。我发现我覆盖了move并且被setLocation调用了。

但是,Oracle文档指出move很久以前就已被弃用。为什么它仍由setLocation使用?这是否意味着setLocation也被弃用或move不是?

2 个答案:

答案 0 :(得分:0)

任何注释为@Deprecated的api表示将来会删除它。弃用的api来自客户'观点不是供应商。如果将来move方法删除,则供应商可以自由更改setLocation,但客户无法更新代码以便调用new api。

未使用setLocation注释的

@Deprecated表示您可以很高兴在未来的jdk中运行该程序而不进行任何更改。

答案 1 :(得分:0)

可能仍然存在不推荐使用的方法以支持应用程序的向后兼容性,或者告诉开发人员将在库的未来版本中删除该方法。

一个已弃用的方法本身仍然完全正常并且有效,但它表明存在一种不同的,可取的方式来做同样的事情。

其他仍在使用弃用方法的方法(通常具有不同的功能)不一定会弃用。它们的实现可能已经过时,但API不是。