为什么Java编译器需要返回值?

Pra*_*nna -4 java

public MyObject method1() {
  boolean someBoolean = true;
  MyObject obj = ...;

  if(!someBoolean) method1();
  else return obj;
  // flow should never come to this statement, but compiler requires this return. why?
  return null;
}
Run Code Online (Sandbox Code Playgroud)

为什么java编译器需要最终的return语句?

-Prasanna

Lou*_*man 7

如果!someBoolean,然后method1被调用,但没有返回任何内容.所以流量完全可以在最后一个声明中结束.