Java 已初始化的未初始化变量

Java 已初始化的未初始化变量,java,Java,有人知道我为什么会出现错误吗变量“tree”可能尚未初始化 我的方法 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]);

有人知道我为什么会出现错误吗
变量“tree”可能尚未初始化

我的方法

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;
    }
publicstatictreenoderandombst(TreeNode[]noderar){
TreeNode root=noderar[0];
树形树;
for(int i=1;i
我的buildBST方法返回一个TreeNode对象


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

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

请给出一个示例,说明它在
int
时的工作方式。