写程序要用到自己定义的类构成的数组,发现无法通过变量控制其大小
下面用代码说明:int n = 3;
int[] m = new int[n];这两行代码时可以正确执行的,基本类型int可以通过变量来控制数组的大小,但是当把代码换成下面两行的时候,就出错了:int n = 3;
Grammar[] gra = new Grammar[n];其中,Grammar是我自己定义的一个类。Debug时发现上面第二条语句会引起一个ClassNotFound异常,是不是说明自己定义的类是不能这样动态创建其数组的?如果是的话要如何才能比较好的达成这个目的呢?我用Vector试过,虽然可以将多个类的实例组合在一起,但是每次需要用到其中某个实例的时候会很麻烦,求教各位大虾这种问题该如何解决,在线等。

解决方案 »

  1.   

    int n = 3;
    Grammar[] gra = new Grammar[n];
    我照这个去自己定义了一个,可以用啊,第二条语句会引起一个ClassNotFound异常,,说没有找到你的这个类,没有代码不清楚你错在哪里!
      

  2.   


    额,Grammar这个类是我在另一个包DataType里定义的,在主函数所在的类里用 import DataType.*; 语句导入了这个包,不知道是不是这个问题?可是我如果创建这个类的一个实例是可以的啊,比如下面的语句就能正确执行:
    Grammar gra = new Grammar();
      

  3.   


    晕啊,我刚搜索了一下,找到错误在哪里了,原来是那条语句只初始化了数组,但是没有初始化数组中的对象,后面加个for语句把每个对象依次初始化一下就可以了……