我不确定这个错误是什么或它为什么会发生。我在网上找到的东西与TableViews无关。但是当我的囚犯Class中的这个方法被我的TableView访问时,它会抛出一个[String]?
。这是我第一次使用TableView。
InvocationTargetException
Cell(有两个子类但我没有使用上述方法访问其中的数据):
public int getCellBlock() {
for (int i = 0; i < Main.getCellBlocks().size(); i++) //for each cellblock
for (int j = 0; j < Main.getCellBlocks().get(i).getCells().size(); j++) //for each cell
for (int k = 0; k < Main.getCellBlocks().get(i).getCells().get(j).getInmates().size(); k++)
if (Main.getCellBlocks().get(i).getCells().get(j).getInmates().get(k).equals(this.idNum)) {
return i;
}
return -1;
}
监狱分区:
import java.io.Serializable;
import java.util.ArrayList;
public class Cell implements Serializable {
private ArrayList<Integer> inmateIdNums;
private int capacity = 0;
Cell(int cap){
capacity = cap;
inmateIdNums = new ArrayList<>();
for (int i = 0; i < capacity; i++)
inmateIdNums.add(null);
}
public void add (int idNum){
for (int i = 0; i < capacity; i++){
if (inmateIdNums.get(i) == null) {
inmateIdNums.set(i, idNum);
break;
}
}
}
public void add (int idNum, int dur){}
public void add (int idNum, String reason){}
public ArrayList<Integer> getInmates(){ return inmateIdNums; }
public int getEmptyBunks(){
int emptyBunks = 0;
for (int i = 0; i < inmateIdNums.size(); i++){
if (inmateIdNums.get(i) == null)
emptyBunks++;
}
return emptyBunks;
}
}
错误:
答案 0 :(得分:0)
我不确定是哪一个,但我自己解决了这个问题。循环很好。
问题是两件事之一 - 比较,或者我写信息的文件(我使用二进制文件和ObjectInputStream
/ ObjectOutputStream
)。
在Cell构造函数中,我有:
for (int i = 0; i < capacity; i++)
inmateIdNums.add(null);
为避免将Integer
与null
进行比较,我将其更改为:
for (int i = 0; i < capacity; i++)
inmateIdNums.add(0);
这并没有解决我的问题。所以我只能假设某个人在这个糟糕的比较正在进行时,我的一个文件被写错了。作为最后的努力,我删除了我一直在使用的文件并运行我的程序,以创建新文件并添加新条目。
问题解决了。