繁体   English   中英

Java:返回对象的迭代方法

[英]Java: Iterative method returning an object

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

public Object getObject() {
    return this.getObject();        
}

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

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

事情就像这样总是在运行时导致错误(而不是编译时)。 在许多情况下,可能已经完成了类似的 (在递归方面) 类似的东西。

Java没有关于您的代码是否有意义的概念。 如果您决定在没有退出条件的情况下调用自己的方法,它将递归,直到它用完堆栈空间。

如果没有方法调用自己的能力,就不可能进行递归。

更轻松一点,一个理智的开发人员扩展具有此方法的类可能会做一些有用的事情,因为该方法无论如何都是公开的。 所以编译器不需要反对;-)

1.认为编译器会对你的上述代码给出许可有任何异议我认为它只是如何编写和使用recursion

2.这里的代码会runtime 产生问题 ,因此它完全是程序员编写的逻辑问题,所以它不会打扰编译器,但在运行期间会抛出错误......

如果编译器会这么聪明.....那么终结者电影将是一个接近现实.....

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM