Java 列表空指针
我们开始在课堂上学习列表,有一项任务是在不创建新列表的情况下将数字从列表中分离出来。所以我在列表中使用了sepNum标记和first。但是它返回空指针,我不明白为什么。空指针出现在SeparateEnumbers方法的第2行。元素首先存在并且是!空Java 列表空指针,java,list,nullpointerexception,Java,List,Nullpointerexception,我们开始在课堂上学习列表,有一项任务是在不创建新列表的情况下将数字从列表中分离出来。所以我在列表中使用了sepNum标记和first。但是它返回空指针,我不明白为什么。空指针出现在SeparateEnumbers方法的第2行。元素首先存在并且是!空 public void separateNumbers() { sepNum = first; while (sepNum.info < 0 || sepNum.info > 9) sepNum = sep
public void separateNumbers() {
sepNum = first;
while (sepNum.info < 0 || sepNum.info > 9)
sepNum = sepNum.point;
Element previous = sepNum;
Element current = sepNum.point;
while (current != null) {
if (current.info < 0 || current.info > 9){
previous.point = current.point;
current = current.point;
} else {
previous = current.point;
current = current.point;
}
}
}
我已经想了几个小时了。你们能帮忙吗?你们的问题在while循环中第二次出现。我用大括号中的值替换了变量
public void separateNumbers()
{
sepNum = {info: 'a', point: null};
while ({'a'} < 0 || {'a'} > 9) //sepNum.info
sepNum = {null}; //sepNum.point
public void separateNumbers()
{
sepNum={info:'a',point:null};
而({'a'}<0 |{'a'}>9)//sepNum.info
sepNum={null};//sepNum.point
然后再次返回while循环以测试条件:
while ({null}.info < 0 || {null}.info > 9) //sepNum.info
while({null}.info<0 |{null}.info>9)//sepNum.info
因为您正在延迟null,所以会出现null指针异常。是否有堆栈跟踪?如果它发生在第2行,则意味着
第一个(无论是什么)为null。第一个的值必须为null-您是否100%确定不是这种情况。请随意添加更多证据(可能是调用方法)@不一定是SteveSmith。由于sepNum变量在循环中被设置为sepNum.point,因此sepNum.point也可能为null。然后,循环将在下面的iteration@OH上帝蜘蛛是真的。为什么他们从不发布堆栈跟踪?@SteveSmith first是堆栈跟踪。它绝对不是空的。我忘了提到,当我用first更改sepNum时,它可以工作,但我需要在末尾打印两个不同的。。。。
while ({null}.info < 0 || {null}.info > 9) //sepNum.info