如果在函数中以较小的参数递归调用,并且在此函数内部,我们正在创建一个类的对象。递归创建的对象将具有相同的名称,因此我们无法保留名称唯一性。我们如何在Java中处理这种情况?在Java中递归调用创建新对象的函数
回答
我认为这个问题源于误解。在Java中,您给本地变量的名称在代码运行时是100%无关紧要的 - 唯一的目的是让程序员指定您正在讨论的变量(通过提供其名称并使编译器通过查看本地范围,它上面的范围等来弄清楚你的意思)。所以,如果你有一个自我调用的递归方法,并且在这个方法中声明了包含新对象的变量,那么就Java而言就不会有冲突,并且它们都将正确地引用不同的地方的不同对象在记忆中。
如果你实际上意味着“我要记录所有新对象我使我的递归方法,而是让他们有明显的赔偿与”,然后通过使集合(ArrayList
为例)启动的一个参数传递给你的递归方法 - 然后你可以添加所有新创建的对象到这个集合中,当它完全返回时,它将充满你新创建的对象。但是,如果这还不够明显,那么你需要问'什么可以区分这些物体?'这将取决于对象的用途(递归方法的某些参数应该是“名称”的一部分吗?还有其他一些状态?还是只需要是随机的和唯一的?)。
你是对的,但提问者也想访问旧对象 – shiladitya 2013-04-20 14:28:59
@shiladitya:你在哪里找到这样的请求问题? – 2013-04-20 14:29:51
这就是我推断。否则这个问题没有意义:) – shiladitya 2013-04-20 14:30:46
- 1. 递归创建对象
- 2. 新类对象创建Java java.lang.StackOverflowError:可能的递归?
- 3. 递归函数没有完全递归对象/子对象
- 4. 在堆(Java)上创建对象之后调用对象的构造函数吗?
- 5. 调用自己创建的没有对象的java函数?
- 6. Java递归,用对象调用它 - 如何复制对象?
- 7. 在AngularJS中递归调用函数
- 8. 在std :: function中调用递归函数
- 9. 合并3D对象的递归函数
- 10. 递归函数创建数组
- 11. 如何在java中的递归函数中创建一个数组
- 12. 在递归函数中不会调用回调函数
- 13. 使用递归重新创建过滤器()函数
- 14. 递归函数来遍历对象
- 15. 走对象链递归函数式
- 16. 递归函数来代替JSON对象
- 17. 的try-catch放置在一个Java的递归函数调用
- 18. 在javascript中调用原型函数而不创建对象
- 19. 如何创建递归超时函数
- 20. MATLAB - 创建匿名函数递归
- 21. 帮助创建递归函数C#
- 22. 在递归函数中保留对象引用
- 23. 每次在java中调用构造函数时是否创建对象?
- 24. Java,创建和修改作为参数传递给新对象的构造函数的对象
- 25. 在Java中实现递归lambda函数
- 26. operator()括号是否在函数调用中创建的对象上调用?
- 27. 在Angular动态创建的对象上调用jQuery函数
- 28. 将对象传递给函数调用中的函数
- 29. 在PODAM 7.0.0中创建递归对象时PodamMockeryException
- 30. 在javascript中搜索json对象的递归函数
您是否有代码例如? – Maroun 2013-04-20 14:25:59
对象没有名字,变量有名字,但它们也有一个作用域 – 2013-04-20 14:28:38