已初始化的未初始化变量

时间:2014-07-25 05:16:31

标签: java

有人知道为什么我收到错误Variable 'tree' might not have been initialized

我的方法

public static TreeNode randomBST(TreeNode[] nodeArr) {
        TreeNode root = nodeArr[0];
        TreeNode tree;
        for (int i = 1; i < nodeArr.length; i++) {
            tree = buildBST(root, nodeArr[i]);
        }
        return tree;
    }

我的buildBST方法返回一个TreeNode对象。

我可以通过分配tree = null来解决此错误。为什么我必须这样做,但如果我要初始化int我不需要?是因为int能够分配已知量的内存,而tree对象是未分配的内存量吗?

1 个答案:

答案 0 :(得分:1)

无法保证编译器始终输入循环。因此,可能无法初始化变量。