gpt4 book ai didi

Java HashMap 类抛出 NullPointerException

转载 作者:行者123 更新时间:2023-11-29 06:51:54 24 4
gpt4 key购买 nike

我正在使用 BlueJ 并测试 HashMap 类以查看其工作原理。下面是我用来测试类(class)的代码。第一次尝试在构造函数中调用 fillMyMap() 方法时,第 23 行抛出错误。

我尝试删除构造函数中对 fillMyMap() 的调用。 HashMapTester 对象已实例化,但当我显式调用该方法时抛出相同的 NullPointerException

我尝试重写 myMap 变量声明,但使用不同的语法导致编译失败。

我已经测试了其他 HashMap 代码(例如,来自 Objects First with BlueJ),该代码运行良好,因此不存在库、类或包问题。

我尝试更改变量,以为我不小心碰到了保留字。同样的结果。这段代码有什么问题?

import java.util.HashMap;

public class HashMapTester
{
//Fields
public HashMap<String, String> myMap;

// The constructor is supposed to construct a new
// HashMap object with variable name myMap.
// The fillMyMap() method call simply fills the HashMap
// with data prior to testing it.
public HashMapTester()
{
HashMap<String, String> myMap = new HashMap<String, String>();
fillMyMap();
}

// fillMyMap() methods is supposed to fill up
// the keys and values of the HashMap<String, String>
// object.
public void fillMyMap()
{
myMap.put("doe", "A deer...a female deer."); //<-- ERROR OCCURS HERE!
myMap.put("ray", "A drop of golden sun.");
myMap.put("me", "A name I call myself.");
myMap.put("fah", "A long, long way to run.");
myMap.put("sew", "A needle sewing thread.");
myMap.put("la", "A note to follow sew.");
myMap.put("tea", "It goes with jam and bread.");
}

public String sing(String note)
{
String song = myMap.get(note);
return song;
}
}

最佳答案

HashMap<String, String> myMap = new HashMap<String, String>();

是在构造函数中声明一个局部变量,而不是实例化字段变量。

使用

this.myMap = new HashMap<String, String>();

关于Java HashMap 类抛出 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45199486/

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