[英]Having trouble with adding an ArrayList to an ArrayList of ArrayLists
public class Tabel {
private static int dimension;
private ArrayList<ArrayList<Character>> tabel;
public Tabel(int dimension) {
Tabel.dimension = dimension;
for (int i=0;i<Tabel.dimension*Tabel.dimension;i++) {
tabel.add(new ArrayList<Character>());
}
}
}
当我尝试调试(eclipse ide)时,我遇到很多奇怪的“错误”,或者至少遇到了一些我认为是意外的事情。
专用静态int不会出现在调试的“变量”部分中。
我得到一个NullPointerException
上tabel.add(...)
但是当我观看了调试,它进入for
一次,没有在表中添加任何东西,因为当我点击“下一步”,而不是跳转到花括号它跳出功能的
如果我对.add
注释, .add
它将起作用(我认为)。 我的语法错误吗? 还是我应该发布更多代码?
tabel
未初始化,因此为null。
更改
private ArrayList<ArrayList<Character>> tabel;
至
private ArrayList<ArrayList<Character>> tabel = new ArrayList<ArrayList<Character>>();
或更好:
private List<ArrayList<Character>> tabel = new ArrayList<ArrayList<Character>>();
因为这不会将tabel
与ArrayList
绑定tabel
。
您尚未初始化private
列表。 请执行下列操作:
private List<ArrayList<Character>> tabel = new ArrayList<ArrayList<Character>>();
我也很难理解嵌套的级别。
最好引用List而不是ArrayList。 除非您在具体的类中需要一个方法,否则它使您的程序可以更灵活地引用该接口以及该接口中的方法。
创建具有定义为“字符列表”的字段的类(1)。 将字段设置为构造函数中的新ArrayList。
创建另一个类(2),该类的字段定义为类(1)的列表。 将字段设置为构造函数中的新ArrayList。
创建另一个具有定义为类列表(2)的字段的类(3)。 将字段设置为构造函数中的新ArrayList。
由于您了解自己在做什么,因此可以为这3个类指定更有意义的名称。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.