我是靠谱客的博主 爱笑朋友,最近开发中收集的这篇文章主要介绍java.lang.StackOverflowError: nulljava.lang.StackOverflowError: null迭代的方法:返回值为List时,死循环,出现这种错误,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

java.lang.StackOverflowError: null

private List<SysRegionEntity> queryValidSysRegionList(String regionId,
List<SysRegionEntity> sysRegionList, List<SysRegionEntity> validSysRegionList) {
for (SysRegionEntity sysRegionEntity : sysRegionList) {
if(null != sysRegionEntity.getpId()){
if(sysRegionEntity.getpId().equals(regionId)){
validSysRegionList.add(sysRegionEntity);
queryValidSysRegionList(sysRegionEntity.getRegionId(), sysRegionList, validSysRegionList);
}
}
}
}

迭代的方法:返回值为List<SysRegionEntity>时,死循环,出现这种错误

private void queryValidSysRegionList(String regionId,
List<SysRegionEntity> sysRegionList, List<SysRegionEntity> validSysRegionList) {
for (SysRegionEntity sysRegionEntity : sysRegionList) {
if(null != sysRegionEntity.getpId()){
if(sysRegionEntity.getpId().equals(regionId)){
validSysRegionList.add(sysRegionEntity);
queryValidSysRegionList(sysRegionEntity.getRegionId(), sysRegionList, validSysRegionList);
}
}
}
}

方案:将返回值变为void即可,或者给返回值。

原因:这主要是迭代本身就是比较占用内存,而每次有返回值占用过多的虚拟机内存,且没有返回值,造成死循环,导致内存溢出。因此将返回值变为void。

最后

以上就是爱笑朋友为你收集整理的java.lang.StackOverflowError: nulljava.lang.StackOverflowError: null迭代的方法:返回值为List时,死循环,出现这种错误的全部内容,希望文章能够帮你解决java.lang.StackOverflowError: nulljava.lang.StackOverflowError: null迭代的方法:返回值为List时,死循环,出现这种错误所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部