我也不知道咋描述我用的数组
大家看看程序吧,结果异常,因为我的赋值没有成功,高手给看看吧,感激不尽啊!!
public class Test
{
private Port[] port;
public Test(int x,int[] y)
{
port = new Port[x];
for(int i = 0;i < port.length;i++)
{
port[i] = new Port(); //定义第i个端口
int kk = y[i]; //第i个端口的消息数量
port[i].msg = new Msg[kk];//定义第i个端口的消息数组
for(int j = 0;j < port[i].msg.length;j++)
{
port[i].msg[j].msgNum = j;//给第i个端口的第j条消息的消息号赋值
}
} }
public static void main(String[] args)
{
int x=2;//两个端口
int[] y={2,3};//第一个端口有两条消息,第二个端口有三条消息
Test test = new Test(x,y);
System.out.println(test.port[0].msg[1].msgNum);//输出 }}/*Msg类*/class Msg //消息
{
int msgNum;//消息号
}
/*Port类*/
class Port //端口
{
Msg[] msg;//消息数组(一个端口有多条消息,所以定义成数组)
}
大家看看程序吧,结果异常,因为我的赋值没有成功,高手给看看吧,感激不尽啊!!
public class Test
{
private Port[] port;
public Test(int x,int[] y)
{
port = new Port[x];
for(int i = 0;i < port.length;i++)
{
port[i] = new Port(); //定义第i个端口
int kk = y[i]; //第i个端口的消息数量
port[i].msg = new Msg[kk];//定义第i个端口的消息数组
for(int j = 0;j < port[i].msg.length;j++)
{
port[i].msg[j].msgNum = j;//给第i个端口的第j条消息的消息号赋值
}
} }
public static void main(String[] args)
{
int x=2;//两个端口
int[] y={2,3};//第一个端口有两条消息,第二个端口有三条消息
Test test = new Test(x,y);
System.out.println(test.port[0].msg[1].msgNum);//输出 }}/*Msg类*/class Msg //消息
{
int msgNum;//消息号
}
/*Port类*/
class Port //端口
{
Msg[] msg;//消息数组(一个端口有多条消息,所以定义成数组)
}
所以出了NullException
port[i].msg[j]= new Msg();
port[i].msg[j].msgNum = j;// 给第i个端口的第j条消息的消息号赋值
问题在这 这里并没有创建Msg数组,只是给它指定了大小……需在此之后加一下代码:
for(int m = 0; m < kk;m++){
port[i].msg[m] = new Msg();
}