【发布时间】:2017-03-04 00:04:12
【问题描述】:
我有一个名为 resolveClash 的函数,我发送一个数组 (在这种情况下-combinsFinal),其中包含 2 个或多个 ModuleLecturerStudentCombination 类型的对象(这是我自己的类)。本质上,resolveClash 函数所做的是将数组放入数组列表中,删除数组中的第一个元素/对象,然后返回列表。但是,当我在调试模式 (eclipse) 中检查返回值的状态时,它显示空值已添加到数组列表的末尾。
我已经查找了“正确删除对象”等,但是,到目前为止我尝试过的所有内容都没有摆脱空值。执行删除后出现空值。我已经彻底检查过没有传入 null 等。这是一个问题,因为当我使用它并稍后迭代它时,它会选择一个 null 并给我一个 nullpointerexception 错误。有人可以让我知道我做错了什么或指出我正确的方向吗?
提前致谢!
resolveClash(combinsFinal);
public ArrayList <ModuleLecturerStudentCombination> resolveClash(ModuleLecturerStudentCombination[] combinationArr){
ArrayList<ModuleLecturerStudentCombination> copyCombinationList = new ArrayList<ModuleLecturerStudentCombination>(Arrays.asList(combinationArr));
copyCombinationList.remove(0);
return copyCombinationList;
}
【问题讨论】:
-
您是否使用 eclipse 或类似工具并在 Debug 透视图中查看结果?
-
return new ArrayList<>(Arrays.asList(combinationArr).subList(1, combinationArr.length()));会更容易。 -
您如何知道返回的
ArrayList包含null?你怎么知道 null 不在你传递给方法的数组中?在调试模式下,您将看到ArrayList的实现细节,包括后备数组中不属于列表值的条目。 -
我已经更新了帖子来回答这些问题
-
@michaelskellig510 你应该在问题中添加附加代码而不是使用图片(特别是因为问题似乎在附加代码中)
标签: java arrays arraylist nullpointerexception null