目前,我遇到了一个意想不到的错误。 我正在用java语言编程,使用eclipse作为IDE。
有关名单的声明如下:
private final List<Integer> resList;
在调试程序时使用eclipse
的“观察点”功能,我看到了以下过程:
在返回resList
列表两次之后,在第三次返回之前,列表突然变空。
如果有人建议我解决这个问题,我会很高兴吗?
关于代码,我发布了访问resList列表并在程序中调用的所有方法:
这是第一个:
public CloudInformationService(String name) throws Exception {
super(name);
resList = new LinkedList<Integer>();
arList = new LinkedList<Integer>();
gisList = new LinkedList<Integer>();
}
第二个:
public void processEvent(SimEvent ev) {
int id = -1; // requester id
switch (ev.getTag()) {
...
// A resource is requesting to register.
case CloudSimTags.REGISTER_RESOURCE:
resList.add((Integer) ev.getData());
break;
...
}
}
最后,第三个:
private static CloudInformationService cis;
public static List<Integer> getCloudResourceList() {
if (cis == null) {
return null;
}
return cis.getList();// The implementation of this method is listed below
}
public List<Integer> getList() {
return resList;
}
提前谢谢。
答案 0 :(得分:0)
步骤1:使用ctrl + alt + H查找对resList的引用,并查找调用remove,clear,removeAll的方法。如果使用resList的方法太多,请转到步骤2。
步骤2:在CloudInformationServices构造函数中设置断点,在命中时,在LinkedList / AbstractList(在JDK中)中设置所有remove,clear,removeAll方法中的断点。在断点视图中,右键单击resList并选择实例断点。选择所有删除,清除,删除所有断点并继续执行。现在,您将获得一个断点,并可以观察列表被清空的位置。
如果没有更多的代码,我恐怕没有多少帮助。