gpt4 book ai didi

java - 缺少子类的方法实现时的标准异常?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:49:49 27 4
gpt4 key购买 nike

上下文:

我有一个抽象类 SuperClass,它有大量的子类,每个子类都以相似的方式处理不同的业务对象。

我需要添加一些新功能,这些功能肯定在 SuperClass 中占有一席之地,但将依赖于特定于子类的属性,我需要在父类(super class)方法中获取该属性。这里明显的方法是在 SuperClass 中为属性添加一个抽象 getter,并让每个子类覆盖它,以便它可以在调用时发送正确的属性。

要注意的是:由于害怕回归,我不允许更改除我正在处理的子类之外的其他子类的代码

所以我不能添加抽象方法,因为其他子类将无法再编译。

因为只有我现在正在处理的对象需要这个新功能,所以我可以在 SuperClass 中声明一个标准的非抽象方法,并返回 null那里。然后在我正在处理的子类中覆盖它,瞧。

问题:

如果没有正确阅读我在 Javadoc 中的警告的人曾经尝试从不同的子类调用这个新方法,由于 getter 没有被正确覆盖,它将产生意想不到的结果。与其在 SuperClass 中返回 null(和意想不到的结果),我认为抛出异常对我的程序员同行来说更优雅和有用。

我可以定义一个定制的异常,但是在“标准”异常中是否存在类似于 YouForgotToImplementSomethingExceptionPleaseReadTheJavadocException 的东西?

编辑:

按照答案中的建议抛出一个 Error 不是我很喜欢的东西,但也许在这里模拟编译器的行为可能有意义?对此有何想法?

最佳答案

我看到一些库使用 UnsupportedOperationException为此。

Thrown to indicate that the requested operation is not supported.

关于java - 缺少子类的方法实现时的标准异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15336206/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com