Java:返回对象的迭代方法

Luk*_*lor 4 java recursion halting-problem

出于好奇,我来写下面的方法:

public Object getObject() {
    return this.getObject();        
}
Run Code Online (Sandbox Code Playgroud)

为什么Java允许我写这个?这种方法永远不会返回任何Object并导致a StackOverflow Error.

Boz*_*zho 5

它不应该阻止你这样做 - 这只是无底的递归,但它可能是一个常规的.编译器不需要去理解代码来猜测它是否正确定义了递归.

  • 事实上,在一般情况下,这基本上是暂停问题.对于给定的程序,可能无法通过静态分析确定程序何时或是否结束.http://en.wikipedia.org/wiki/Halting_problem (4认同)