gpt4 book ai didi

java - HashMap 字段不更新

转载 作者:太空宇宙 更新时间:2023-11-04 12:10:28 24 4
gpt4 key购买 nike

在我的java项目中,我有一个私有(private)HashMap字段(eggs是一个枚举,bacon是一个具有ArrayList字段的对象)。所以它是这样的:

    class Foo {
private HashMap<Eggs, Bacon> breakfast;

foo() {
this.breakfast = new HashMap<Eggs, Bacon>();}

void setValues(int x) {
ArrayList<Integer> temp;
Bacon b;
for(int i = 0; i < x; i++) {
temp.add(i);}
b = new Bacon(temp);
this.breakfast.put(Eggs.Scrambled, b);}
}

本质上,即使我确保首先在 testClass 中调用 setValues,对 breakfast.get() 或 breakfast.size() 的调用也始终会导致 NullPointerException。在我的实际代码中,我在 for 循环中有几个枚举到对象映射。使用调试器,我发现这些值已设置,但在每个循环结束时立即消失。我不知道为什么我的 HashMap 字段不保存放入其中的值。即使我将字段更改为 ArrayList 并设置或添加值,我仍然会得到相同的空指针/越界异常

如果需要,我可以发布我的实际代码,但我想知道是否有人对此有任何见解。我已经无计可施了

最佳答案

您声明 ArrayList<Integer> temp而不给它赋值。

List<Integer> temp = new ArrayList<>();

此外,这方面还有很多代码异味,您应该尝试遵循编码标准(我更喜欢谷歌的)并尝试重新考虑您的设计;构造函数以及可能完全删除列表会有所帮助,但如果不知道实际的问题/代码,我们就无法真正知道。

关于java - HashMap 字段不更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39912256/

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