为什么 java 允许总是抛出异常的方法将返回类型声明为该异常? 以下两种方法均有效:-
public RuntimeException alwaysFails() {
throw new RuntimeException("failed");
}
public void alwaysFailsButVoid() {
throw new RuntimeException("failed");
}
允许这样做有什么好处?
最佳答案
您可以将任何类型声明为方法的返回类型。由于该方法永远不会正常返回,因此这是完全正确的(但具有误导性)。
请注意,通常情况下,Java 编译器无法确定您的方法何时可以正常返回(由于暂停问题无法解决)。
允许这样做的好处是允许您子类化一个类或继承一个已经为该方法预先指定返回类型的接口(interface)。它对于面向对象编程至关重要。
关于java - 为什么 java 允许总是抛出异常的方法将返回类型声明为该异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19844422/