Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 注释没有实现的方法_Java_Deprecated_Conventions_Obsolete - Fatal编程技术网

Java 注释没有实现的方法

Java 注释没有实现的方法,java,deprecated,conventions,obsolete,Java,Deprecated,Conventions,Obsolete,出于对干净漂亮代码的兴趣,我一直在寻找一个问题的答案,这个问题是whist在记录我的最新项目时突然出现的 通常,会有一个抽象类或接口与需要实现的方法;有时候,继承这些方法的类会有其他特定的、唯一的方法,这些方法会使继承的方法过时,因此不会被引用。 为了避免在未使用功能的地方添加功能,我将这些过时的继承方法保留为空,并对其原因进行了评论。 尽管如此,我觉得我还有很多事情要做,但除了给它一个不推荐的注释外,我想不出一个答案。 这将确保任何试图使用该方法的人都会意识到它不受支持,因此会使用更合适的特定

出于对干净漂亮代码的兴趣,我一直在寻找一个问题的答案,这个问题是whist在记录我的最新项目时突然出现的

通常,会有一个抽象类或接口与需要实现的方法;有时候,继承这些方法的类会有其他特定的、唯一的方法,这些方法会使继承的方法过时,因此不会被引用。 为了避免在未使用功能的地方添加功能,我将这些过时的继承方法保留为空,并对其原因进行了评论。 尽管如此,我觉得我还有很多事情要做,但除了给它一个不推荐的注释外,我想不出一个答案。 这将确保任何试图使用该方法的人都会意识到它不受支持,因此会使用更合适的特定于类的替代方法,或者在实现中添加。 然而,我一直认为不推荐使用的注释只属于在某一点上受支持的内容,并计划将其删除。然而,在我的情况下,该内容从未得到支持,也不打算删除

不推荐使用的注释在这里合适吗?有没有更合适的替代方案?或者,即使这些继承的方法被认为已经过时,也没有适当的实现,这被认为是一种不良做法

我感谢您的时间和您可能提供的任何反馈。 非常感谢。
-Justis

存在@deprecated注释是为了通知用户将来将删除某些方法。不立即删除它们的唯一原因是它会破坏现有代码。 在你的情况下,看起来你可能滥用了继承权。从类扩展而不实现预期行为是一种代码气味,称为拒绝继承

正如NickL指出的那样,你的继承方法听起来很奇怪。然而,我想澄清一个关于反对的误解

许多开发人员认为,弃用API意味着宣布它将被删除,但这不是唯一的用例(如和的相关文章所述):

API是危险的(例如,
Thread.stop
方法)

有一个简单的重命名(例如,AWT
Component.show/hide
替换为
setVisible

可以使用更新、更好的API

不推荐使用的API将被删除

因此,在方法上添加
@Deprecated
注释实际上是完全正确的。请确保还添加了Javadoc
@deprecated
标记,并解释了您的推理,并指出该方法目前不打算删除

如果您改变了对其中一种方法的想法,或者想要弃用其他方法来删除它们,请在
@deprecated
Javadoc标记中提及这一点。如果您使用Java 9及更高版本,则还应将new
ForRemove
标志设置为
true
(默认为
false
):

这个特性被称为


更多详细信息请参见至。

能否分享一些示例代码?这对我来说似乎有点不寻常。当然。在这种情况下,由于子类的使用方式,它不需要从其超类继承任何方法。这里有一个例子,说明如何提供替代方案,使继承的方法过时:啊,是的,我怀疑可能是这样的,这绝对是有道理的。因此,不执行这些方法确实是一种不良做法。我已经阅读了这些文章,它对继承的解释让我很好地理解了应该如何着手解决我的问题。我只需要进一步分解继承,以便为需要特定功能的人提供特定功能,而不需要实现不必要的功能。我想我需要习惯上更多的课确切地多上课没什么错。当您拥有更多的抽象类时,将更容易看到它们的共性,并创建一个适当的抽象类。
@Deprecated(forRemoval=true)