gpt4 book ai didi

java - 返回原始类型的方法是否可能返回 null?

转载 作者:行者123 更新时间:2023-11-30 07:43:54 25 4
gpt4 key购买 nike

我正在练习 ArrayList遇到了一些我不明白的事情。我有一个类Knapsack和一类 Item , 我正在填写 knapsacksitems并对 knapsacks 进行各种测试等

公众之一Knapsack方法返回 non-null 的总重量knapsack 中的项目.另一个Knapsack作为静态类方法的方法返回最重的knapsackKnapsack 的数组中对象。

当我调用这段代码来测试 knapsack 中的项目时等于 1000 克:

testIntEqual("heaviestKnapsack", 1000, Knapsack.heaviestKnapsack(sacks).totalWeightInGrammes());

IntelliJ 给我一个 NullPointerException调用警告 totalWeightInGrammes()

以下是 heaviestKnapsack() 的实现和 totalWeightInGrammes()方法:

public static Knapsack heaviestKnapsack(Knapsack[] knapsacks) {
// TO DO
if (knapsacks.length != 0) {
Knapsack heaviest;
int index = 0;
while (true) {
heaviest = knapsacks[index];
if (heaviest == null) {
index++;
} else {
break;
}
}
for (Knapsack knapsack : knapsacks) {
if (knapsack != null && (getTotalKnapsackWeight(knapsack) > getTotalKnapsackWeight(heaviest))) {
heaviest = knapsack;
}
}
return heaviest;
}
return null;
}

public int totalWeightInGrammes() {
// TO DO
if (!knapsackItems.isEmpty()) {
int totalWeight = 0;
for (Item i : knapsackItems) {
if (i != null) {
totalWeight += i.getWeightInGrammes();
}
}
return totalWeight;
}
return 0;
}

当我对 null 进行全面测试时,我真的很困惑为什么 IntelliJ 会警告我有关 NPE 的信息在这些方法和totalWeightInGrammes()返回原始类型 int .

非常感谢所有评论:)

最佳答案

Knapsack.heaviestKnapsack(sacks).totalWeightInGrammes()
^^^^ ^^^^
can return null NPE warning

你在 .totalWeightInGrammes() 上有一个 NPE 警告 因为 heaviestKnapsack() 可以返回 null,所以调用 .totalWeightInGrammes() 将抛出 NPE

关于java - 返回原始类型的方法是否可能返回 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52958289/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com