一个空指针访问问题(急)

tianwill 2005-10-24 09:07:28
程序如下:
public class NewMap {
ViewNode node[]=new ViewNode[4];//声明ViewNode对象的数组
public NewMap()
{
Edge edge[][]=new Edge[4][];//声明Edge对象数组
edge[0]=new Edge[]{new Edge(200,node[2]),new Edge(300,node[3])};//实例化对象edge
edge[1]=new Edge[]{new Edge(200,node[1])}; 将node对象作为
edge[2]=new Edge[]{new Edge(200,node[0]),new Edge(300,node[1])}; 参数传入
edge[3]=new Edge[]{new Edge(300,node[2]),new Edge(300,node[0])}; 
for(int i=0;i<4;i++)
{
node[i]=new ViewNode(edge[i]);//实例化对象node,将edge对象作为参数传入
}
}
}
//////////Edge类
public class Edge {
public int wayLength;
ViewNode viewnodenext=null;

public Edge(int WayLength,ViewNode nextViewNode)
{

wayLength=WayLength;
viewNodeNext=nextViewNode;


////////ViewNode类
public class ViewNode {

Edge edge[]=new Edge[4];
public ViewNode(Edge _edge[]) {

for(int i=0;i<_edge.length;i++)
{
edge[i]=_edge[i];
}
}

问题是在NewMap类里面,在实例化Edge类的时候,需要将Node类对象作为参数传入,但Node类在后面才被实例化。也就是说我在访问Edge类的viewNodeNext成员的时候,viewNodeNext还没有指向一个ViewNode的实例。会出现java.lang.NullPointerException异常。
如果先实例化ViewNode类,但ViewNode类里又需要传入Edge类的实例,Edge类又没被实例化。又同样会出现java.lang.NullPointerException异常。
总的来说就是,相互调用对象,但实例化的先后顺序不一样,不管先实例化哪个对象都会出现java.lang.NullPointerException异常。

希望有人帮忙提供方案解决问题。
...全文
97 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
tianwill 2005-10-24
  • 打赏
  • 举报
回复
一语惊破。搞定。。
马上给分。。
rumlee 2005-10-24
  • 打赏
  • 举报
回复
public class Edge {
public int wayLength;
ViewNode viewnodenext=null;

public Edge(int WayLength,ViewNode nextViewNode)
{

wayLength=WayLength;
viewNodeNext=nextViewNode;


////////ViewNode类
public class ViewNode {

Edge edge[]=new Edge[4];

public ViewNode(){}

public set(Edge _edge[]) {
for(int i=0;i<_edge.length;i++)
{
edge[i]=_edge[i];
}
}

tianwill 2005-10-24
  • 打赏
  • 举报
回复
能不能修改下代码具体说明一下??
rumlee 2005-10-24
  • 打赏
  • 举报
回复
可以使用其它的函数把引用传进去,不一定要通过构造函数才可以的。这是一个循环引用的问题。其实很简单的。
sunday_hl 2005-10-24
  • 打赏
  • 举报
回复
看不懂,只有帮你顶
tianwill 2005-10-24
  • 打赏
  • 举报
回复
自己顶。

62,629

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧