这个问题不太可能帮助任何未来的游客;它只与一个小的地理区域、一个特定的时刻或一个非常狭窄的情况有关,而这些情况通常不适用于互联网的全球受众。有关使此问题更广泛适用的帮助,请访问帮助中心。
7年前关门了。
public static void main(String[] args)
{
class Tree{
int value;
Tree[] branches;
}
int a[]=new int[]{0,1,2};
Tree[] objTree=new Tree[a.length+1];
for(int j=0;j<objTree.length;j++)
{
objTree[j]=new Tree();
objTree[j].branches=new Tree[5];
for(int i=0;i<objTree[j].branches.length;i++){
objTree[j].branches[0]=new Tree();
}
}
objTree[0].value=4;
}
对象树[0],值=4;当我使用这段代码时效果很好,但是当我使用下面的代码时,它会抛出一个异常
for(Tree t:objTree)
{
t=new Tree();
t.value=5;
t.branches=new Tree[5];
for(int i=0;i<t.branches.length;i++){
t.branches[0]=new Tree();
}
}
objTree[0].value=4;
objtree[0].value=4在线程“main”java.lang.nullpointerexception中引发异常。有人能解释一下原因吗?
1条答案
按热度按时间iqih9akk1#
在循环中,为
t
,这只是一份null
价值来自objTree
. 改变t
不更改中数组元素的值objTree
--一旦值被复制到t
,它们是两个独立的不相关的值。你需要用传统的for
循环,类似于另一个答案,现在删除,指出在你的另一个
for
回路——内部回路——线路应该是