Sil*_*ier 3 java methods exception
我有一个抽象类SuperClass,它有大量的子类,每个子类在不同的业务对象上工作,但是以类似的方式.
我需要添加一些肯定在其中占有一席之地的新功能SuperClass,但是它将依赖于特定于子类的属性,我需要在超类方法中获得它.这里显而易见的方法是SuperClass为属性添加一个抽象getter ,并让每个子类覆盖它,以便它可以在调用时发送正确的属性.
问题是:由于担心回归,我不允许更改其他子类的代码而不是我正在处理的子代码.
所以我不能添加抽象方法,因为其他子类不再编译.
由于现在只有我正在处理的对象需要这个新功能,所以我可以在其中声明一个标准的非抽象方法SuperClass,然后返回null.然后在我正在处理的子类中覆盖它,并且瞧.
如果没有在Javadoc中正确读取我的警告的人试图从另一个子类调用这个新方法,那么由于getter没有被正确覆盖,它将产生意外的结果.我认为抛出异常对于我的同事们来说更优雅和有用,而不是返回null(和意外的结果)SuperClass.
我可以定义一个定制的异常,但是在"标准"异常中做了什么YouForgotToImplementSomethingException或者PleaseReadTheJavadocException存在什么?
Error按答案中的建议投掷并不是我非常喜欢的东西,但也许在这里模仿编译器的行为是有意义的吗?对此的想法?
| 归档时间: |
|
| 查看次数: |
1090 次 |
| 最近记录: |