java - 在 Java NullPointerException 中为 arrayList 添加每个列表元素
问题描述
该程序用于添加两个列表的元素。控制台输入采用以下形式:
"10, 20, 30"
"20, 30, 40, 50, 60"
输出将是
[30, 50, 70 50, 60]
注意:- 如果一个或两个列表可以为空或为空,则输出应为[]
空列表。在某些测试用例中,我收到 Nullpointer 异常错误
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Source {
public List<Integer> getSumOfListElements(List<Integer> first,List<Integer> second){
List<Integer> list3 = new ArrayList<Integer>();
if(second.isEmpty() || second==null){ //error Nullpointerexception is generated here
if(first.isEmpty() || first==null){
return list3;
}else{
return first;
}
}
else if(first.isEmpty() || second==null){ //error Nullpointerexception is generated here
return second;
}
int l1 = first.size();
int l2 = second.size();
if(l1>l2){
for(int i=0; i<l1; i++){
if(i<l2)
list3.add(first.get(i)+second.get(i));
else
list3.add(first.get(i));
}
}//else part if l2>l1
return list3;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str1 = sc.nextLine();
List<Integer> list1 = new ArrayList<Integer>();
String st1 = str1.replaceAll("^\"|\"$", "");
//same logic for list2 creation
if(!st1.isEmpty()){
String[] ss1=st1.split(", ");
for(int i=0;i<ss1.length;i++){
list1.add(Integer.parseInt(ss1[i]));
}
}
//same if function for list2
if(st1.isEmpty()){
System.out.println(list2);
}....
//same else if for list and for both
....
}else{
Source obj = new Source();
System.out.println("null object");
}
}
}
解决方案
空检查必须首先总是像
if(second.isEmpty() || second==null){
// 这是错误的
if(second==null || second.isEmpty()){
// 这将避免空指针异常
下面的行有一个错误
else if(first.isEmpty() || second==null){ //error Nullpointerexception is generated here
正确的代码是
else if(first==null || first.isEmpty()){ //error Nullpointerexception is generated here
推荐阅读
- spring-boot - Optaplanner 可以管理预订所需的各种组件吗?
- java - Android studio 拒绝启动!(JVM & JDK)
- javascript - 在 discord.js 机器人中收集反应时是否保证顺序?
- python - 有没有办法检查一个值是否在python中2个字典中包含的值给定的区间内
- excel - 交易逻辑 - 排除前几天的信号
- winforms - Excel 自定义任务窗格 VSTO 不会显示滚动条 - 无法访问 UI 元素
- vue.js - 方法不起作用,因为方法在安装之前出现,因此元素不存在
- javascript - 在声明之前调用 React 中的功能组件
- php - 带方括号的 PHP 字符串(可能是字符串索引)
- python - Python:这个条件执行我做错了什么?