Java引用指针 publicstaticvoidmain(字符串[]args) { 类树{ int值; 树枝; } int a[]=新int[]{0,1,2}; 树[]对象树=新树[a.length+1]; 对于(int j=0;j
在循环中,您为Java引用指针 publicstaticvoidmain(字符串[]args) { 类树{ int值; 树枝; } int a[]=新int[]{0,1,2}; 树[]对象树=新树[a.length+1]; 对于(int j=0;j,java,Java,在循环中,您为t分配一个值,它只是objTree中null值的副本。更改t不会更改objTree中数组元素的值——一旦值复制到t,它们是两个独立的不相关值。您需要使用traditi对于循环,例如 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]=ne
t
分配一个值,它只是objTree
中null
值的副本。更改t
不会更改objTree
中数组元素的值——一旦值复制到t
,它们是两个独立的不相关值。您需要使用traditi对于循环,例如
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;
应该是
t.branches[0]=new Tree();
指针在Java中不是一个术语!@GrijeshChauhan它应该是,因为这是您(听说过
NullPointerException
?);)指向OP的内容:您得到该异常的原因只有一个:objTree[0]
是null
。当然。在较低的代码中,您从不定义objTree。在较高的代码中,您在循环的第一行定义objTree。该术语实际上定义为:“引用值(通常只是引用)是指向这些对象的指针,以及一个特殊的null引用,它不指向任何对象。”
for(int j=0; j<objTree.length; ++j) {
Tree t=new Tree();
t.value=5;
t.branches=new Tree[5];
...
objTree[j] = t;
}
t.branches[0]=new Tree();
t.branches[i]=new Tree();