引用类型或类类型变量不能接受给定值

时间:2016-08-12 12:36:43

标签: java

我想制作一个二叉树,但对我来说,我甚至无法在树中插入一个整数值,这很遗憾。问题是我创建了一个类datatype,其中插入了三个属性。它们是:static datatype leftstatic datatype rightstatic int value

我创建了一个类作为用户定义的数据类型:

public class datatype 
{
static datatype left,right;
static int value=0;
}

我的二叉树类是:

datatype root,parent,node;

public int insert(int data)
{       
    node.value=data;  //using debugger found, node.value remain null even 
    node.left=null;    // after insertion of data into it.....That's my 
    node.right=null;   //  problem      
    try{
        if(root==null)
            root=node;                          
        else        
        {
            parent=root;
            insert(node);               
        }
        parent=root;
        return 1;
    }
    catch(Exception e)
    {
        return 0;
    }       
}

private void insert(datatype node)
{       
    if(node.value<=parent.value)
    {
        if(parent.left==null)
        {
            parent.left=node;
            return;
        }
        else
        {
            parent=parent.left;
            insert(parent);
        }
    }
    else
    {
        if(parent.right==null)
        {
            parent.right=node;
            return;
        }
        else
        {
            parent=parent.right;
            insert(parent);
        }
    }
}

1 个答案:

答案 0 :(得分:0)

不要将实例字段保持在dataType静态,因为每个节点都需要自己的leftrightvalue。实例字段永远不应该是静态的。

如果您想要使用用户定义的类型,请阅读泛型类型(例如:https://docs.oracle.com/javase/tutorial/java/generics/types.html)。

另外,请阅读有关如何以及为何使用静态字段的信息:https://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html