java - 是否可以对未初始化的变量执行检查?

标签 java variables initialization

我正在研究递归方法......

public BinaryTree<T> TreeMirror ( BinaryTree<T> tree ) {
   BinaryTree mirror = new BinaryTree();
   mirror = clone(tree);
   ...
   TreeMirror(...)
   ...
} 

我不希望该方法使 mirror 在每个递归步骤中引用不同的 BinaryTree 对象,也不希望重复 mirror = clone(tree)第一次迭代后的 语句。我想知道是否可以放入 if 语句检查来查看 mirror 的实例是否已初始化 - 在这种情况下 mirror = new BinaryTree()mirror = clone(tree) 语句将被跳过。

我认为如果不将 mirror 作为参数传递到方法中或在类定义中定义它,这是不可能的......但我想确定一下。

非常感谢任何建议。

---------编辑------------

我不允许更改方法签名,因此我无法在实现中传递对象。我可以创建一个镜像树,但只能将原始树修改为镜像,这是我想尽量避免的。我试图创建一个新的 BinaryTree 对象,它是传入的原始树的镜像,但实际上无法弄清楚如何递归地执行它。

最佳答案

很少看到这样的公共(public)递归函数。更好的解决方案可能是使用创建对象的公共(public)方法,然后调用一个递归的私有(private)函数,仅进行必要的更改。

通常很难让递归函数签名与您想要向客户展示的内容相匹配。

关于java - 是否可以对未初始化的变量执行检查?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/708000/

相关文章:

ruby - 有没有办法通过散列来初始化对象?

java - 什么是 Xuggler 的好替代品,因为它的开发已经停止?

java - 无法打开gpio方向接口(interface)(Raspberry/Java)

java - 构建没有属性文件的 JCoServer

JavaScript 范围问题,嵌套函数中的 var 访问未定义

c++ - 为什么使用指针而不是直接实例化对象时不使用类成员的默认值?

java - ProcessBuilder:在不阻塞主线程的情况下转发已启动进程的标准输出和标准错误

javascript - 从范围 slider javascript更新输入获取变量?

javascript - JS-设置全局变量

Java初始化变量错误