gpt4 book ai didi

java - nullPointEException...但我初始化了变量(或者至少我认为)

转载 作者:行者123 更新时间:2023-12-01 17:19:17 25 4
gpt4 key购买 nike

当我第一次运行这段代码时,它工作得很好,但在使用几个不同的测试值对其进行测试后,我开始得到 nullPointerException,现在无论我给出什么值,它都不起作用。我在网上查了一下,如果我正确理解了 JavaDoc,当您尝试调用尚未初始化的变量上的方法时,您会收到 NullPointerException。这意味着 BestCustomer 对象未初始化,但我无法弄清楚这是为什么,因为它在我调用 getWho 方法之前在 for 循环中初始化,并且如果 arrayList 中不存在对象(意味着没有任何对象被初始化 - 或者至少我认为是这样)我不调用该方法。为什么我会收到 nullPoiterException?

package hwk4;

import java.util.ArrayList;

public class Store {
ArrayList<Customer> database = new ArrayList<Customer>();
Customer person, bestCustomer;
int totalSales;

public void addSale(String customerName, double amount) {

Customer sale = new Customer(customerName, amount);
database.add(sale);
}

public String nameOfBestCustomer() {

if (database.isEmpty()) {
return "You have made 0 sales today.";
} else {
double largest = database.get(0).getAmt();
for (int count = 1; count < database.size(); count++) {
if (database.get(count).getAmt() > largest) {
largest = database.get(count).getAmt();
bestCustomer = database.get(count);

}
// return nameof best customer

}
return bestCustomer.getWho();
}
}
}

最佳答案

如果是第一项,您需要更新 bestCustomer

double largest = database.get(0).getAmt();
bestCustomer = database.get(0);

在您的代码中,如果最佳客户是第一个项目,则您永远不会更新 bestCustomer 变量,这将在调用时导致 NPE:

return bestCustomer.getWho();

关于java - nullPointEException...但我初始化了变量(或者至少我认为),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19933152/

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