我想覆盖toString()
或Exception
类型的多个个人例外的RuntimeException
方法。
假设我想为test
和toString()
子类显示Exception
RuntimeException
种方法。我必须一次覆盖toString()
。
我怎么能这样做,因为Java不支持多继承?我只是不想为这两种类型的异常编写2次toString()
方法...
示例:
public class SubClassOfException extends Exception {
...
@Override
public String toString() {
return "test";
}
}
我的目标是创建SubClassOfRuntimeException
并使toString()
的自定义SubClassOfException
方法受益,因为RuntimeException
是Exception
的子类。
有没有办法实现,或者我必须将toString()
代码复制到SubClassOfException
和SubClassOfRuntimeException
?
答案 0 :(得分:4)
由于您的SubClassOfException
与RuntimeException
处于同一级别,因此您无法通过继承共享toString()
方法。
但是,如果具体异常类型中的两个toString()
方法都将实际字符串构建委托给公共“异常字符串构建器”,则您也不需要复制代码。我的意思是
class ExceptionPrinter {
public static String exceptionToString(Exception e) { ... }
}
和两个例外类
@Override
public String toString() {
return ExceptionPrinter.exceptionToString(this);
}