【发布时间】:2013-06-06 13:07:15
【问题描述】:
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;
}
objTree[0].value=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 中引发异常。谁能给我解释一下是什么原因?
【问题讨论】:
-
指针不是Java中的术语!
-
@GrijeshChauhan 这应该是你所拥有的(听说过
NullPointerException吗?);) -
致 OP:您得到该异常的原因只有一个:
objTree[0]是null。 -
当然。在较低的代码中,您永远不会定义 objTree。在上面的代码中,您在循环的第一行定义了 objTree。
-
该术语实际上在the language specification 中定义:“引用值(通常只是引用)是指向这些对象的指针,以及一个特殊的空引用,它指没有对象。"
标签: java