在以下代码示例中,我们将使用一个方法来查找列表中的最大值。如果列表为空,则该方法应返回null。但是,当我们尝试访问返回的最大值时,可能会遇到NullPointerException的问题。
public class Main {
public static void main(String[] args) {
List numbers = new ArrayList<>();
numbers.add(5);
numbers.add(10);
numbers.add(3);
Integer max = findMax(numbers);
System.out.println("最大值为:" + max);
System.out.println("最大值的平方为:" + max * max);
}
public static Integer findMax(List numbers) {
if (numbers.isEmpty()) {
return null;
}
Integer max = numbers.get(0);
for (Integer number : numbers) {
if (number > max) {
max = number;
}
}
return max;
}
}
在上述示例中,如果列表为空,findMax方法将返回null。然后,在尝试计算返回的最大值的平方时,将抛出NullPointerException。
为了解决这个问题,我们可以在访问返回的最大值之前,先检查它是否为null。
public class Main {
public static void main(String[] args) {
List numbers = new ArrayList<>();
numbers.add(5);
numbers.add(10);
numbers.add(3);
Integer max = findMax(numbers);
if (max != null) {
System.out.println("最大值为:" + max);
System.out.println("最大值的平方为:" + max * max);
} else {
System.out.println("列表为空");
}
}
public static Integer findMax(List numbers) {
if (numbers.isEmpty()) {
return null;
}
Integer max = numbers.get(0);
for (Integer number : numbers) {
if (number > max) {
max = number;
}
}
return max;
}
}
通过在访问返回的最大值之前进行null检查,我们可以避免NullPointerException,并根据需要执行相应的操作。
下一篇:被嘲笑的方法在字典中