我想在每次迭代中更改变量名称。由于创建的节点数是动态变化的。

我尝试使用一维数组,但返回空指针。我的代码如下

    GenericTreeNode<String> **root1[]** = null;
    for(int i=0;i<10;i++)
    {
        String str="child"+i;
        System.out.println(str);

        **root1[i]** =new GenericTreeNode<String>(str);
    }


我正在使用已经建立的数据结构

    public class GenericTree<T> {

private GenericTreeNode<T> root;

public GenericTree() {
    super();
}

public GenericTreeNode<T> getRoot() {
    return this.root;
}

public void setRoot(GenericTreeNode<T> root) {
    this.root = root;
}


java或JSP中还有其他方法可以在循环内动态更改变量名。

最佳答案

GenericTreeNode<String> root1[] = null;


这一行等效于这一行:

GenericTreeNode<String>[] root1 = null;


所以您创建一个数组变量并将其初始化为null

root1[i] =new GenericTreeNode<String>(str);


但是在这里您为数组的索引分配了一个值。

这必须抛出NullPointerException !!。

方法如下:

GenericTreeNode<String>[] root1 = new GenericTreeNode<String>[10];

10-04 11:49