我需要创建一个树形数组并接受用户输入的字母并将其放入节点中。我在使用forest [i] .root时遇到NullPointerException错误。我该如何解决这个问题?
class TreeApp
{
public static void main(String[] args) throws IOException
{
Tree forest[] = new Tree[10];
Scanner kb = new Scanner(System.in);
for(int i = 0; i < 10; i++)
{
System.out.println("Insert a letter: ");
Node newNode = new Node();
newNode.iData = kb.next().charAt(0);
System.out.println("node: " + newNode.iData );
forest[i].root = newNode;
}
}
}
答案 0 :(得分:3)
Tree forest[] = new Tree[10];
上述语句创建了一个类型为Tree
的数组,但它不会将任何Tree
个实例存储到数组中。因此,您的数组元素使用默认的null
值初始化。
在访问数组元素之前,需要先初始化它们。
在for循环中添加以下行: -
forest[i] = new Tree();
访问forest[i].root
之前。