List 循环空指针问题

时间:2022-05-15 00:50:59
一个for循环:
for(int i=0;i<List.size;i++){
...
}
初始正常运行,当List中数据大于某一值时 for(int i=0;i<List.size;i++) 该行报空指针错误,小于该值时就可正常运行,
请教该问题的原因及解决方法,谢谢!新年快乐!

13 个解决方案

#1


List.size??
你循环条件为什么是size呢?应该是list.length() 吧??
若楼主真是要以size来循环的话,最好给出循环体的代码

#2


首先得知道List.size()中的List时什么类型.
是不是java.util.List?如果是Size的取值是myList.size().

然后List是允许添加Nullpoint的.所以说可能是你自己添加了一个Null到List.错误和List无关.

for(int i=0;i <myList.size();i++){
  if(myList.get(i)!=null){
   ...... 
  }

#3


可能是你的List里边包含有null对象

#4


引用楼主 vv901 的帖子:
一个for循环:
for(int i=0;i <List.size;i++){
...
}
初始正常运行,当List中数据大于某一值时 for(int i=0;i <List.size;i++) 该行报空指针错误,小于该值时就可正常运行,
请教该问题的原因及解决方法,谢谢!新年快乐!

把代码贴出来看看。

#5


删除的时候不能用forEach,要用迭代器Itrator

#6


引用 2 楼 danielzhan 的回复:
首先得知道List.size()中的List时什么类型.
是不是java.util.List?如果是Size的取值是myList.size().

然后List是允许添加Nullpoint的.所以说可能是你自己添加了一个Null到List.错误和List无关.

for(int i=0;i  <myList.size();i++){
if(myList.get(i)!=null){
......
}
}

二楼分析的对啊。看看代码就知道了。

#7


如果是这一行报,
for(int i=0;i <List.size;i++){ 

一定是 你的list 为 null,你可以查下,是不是这句在运行的时候,其他地方修改list对象。

另外最好你的变量不要这样命名 List
List myList = new ArrayList();
for(int i = 0; i < myList.size(); i++) {
……
}

#8


while(list.hasnext()){
}

#9


引用楼主 vv901 的帖子:
当List中数据大于某一值时 for(int i=0;i <List.size;i++) 该行报空指针错误,小于该值时就可正常运行,


估计你有个取值操作吧,入list.get(i);

然后你的list里刚好到某值后面都为null,
所以你取出list里的null值做处理时就会报错

#10


根据仅有的信息 回答的不错啦

#11


如果有可能出现空指针的地方,最好加上判断

#12


这么简单的问题也问,try catch包一下,在catch里面把异常堆栈里面信息输出一下不就知道哪一行有问题了。

#13


分析得非常具体,学习了

#1


List.size??
你循环条件为什么是size呢?应该是list.length() 吧??
若楼主真是要以size来循环的话,最好给出循环体的代码

#2


首先得知道List.size()中的List时什么类型.
是不是java.util.List?如果是Size的取值是myList.size().

然后List是允许添加Nullpoint的.所以说可能是你自己添加了一个Null到List.错误和List无关.

for(int i=0;i <myList.size();i++){
  if(myList.get(i)!=null){
   ...... 
  }

#3


可能是你的List里边包含有null对象

#4


引用楼主 vv901 的帖子:
一个for循环:
for(int i=0;i <List.size;i++){
...
}
初始正常运行,当List中数据大于某一值时 for(int i=0;i <List.size;i++) 该行报空指针错误,小于该值时就可正常运行,
请教该问题的原因及解决方法,谢谢!新年快乐!

把代码贴出来看看。

#5


删除的时候不能用forEach,要用迭代器Itrator

#6


引用 2 楼 danielzhan 的回复:
首先得知道List.size()中的List时什么类型.
是不是java.util.List?如果是Size的取值是myList.size().

然后List是允许添加Nullpoint的.所以说可能是你自己添加了一个Null到List.错误和List无关.

for(int i=0;i  <myList.size();i++){
if(myList.get(i)!=null){
......
}
}

二楼分析的对啊。看看代码就知道了。

#7


如果是这一行报,
for(int i=0;i <List.size;i++){ 

一定是 你的list 为 null,你可以查下,是不是这句在运行的时候,其他地方修改list对象。

另外最好你的变量不要这样命名 List
List myList = new ArrayList();
for(int i = 0; i < myList.size(); i++) {
……
}

#8


while(list.hasnext()){
}

#9


引用楼主 vv901 的帖子:
当List中数据大于某一值时 for(int i=0;i <List.size;i++) 该行报空指针错误,小于该值时就可正常运行,


估计你有个取值操作吧,入list.get(i);

然后你的list里刚好到某值后面都为null,
所以你取出list里的null值做处理时就会报错

#10


根据仅有的信息 回答的不错啦

#11


如果有可能出现空指针的地方,最好加上判断

#12


这么简单的问题也问,try catch包一下,在catch里面把异常堆栈里面信息输出一下不就知道哪一行有问题了。

#13


分析得非常具体,学习了