java - 如何消除java中的空指针异常?

标签 java hashmap

我有一个文件,其值如下:

a,9,1

b,2,4

c,2,4

直到*,2,0 这是我的代码:

    public static final String letterFileLoc = "filelocation";
    public static Map<Character, Integer> letterValueMap;
    public static Map<Character, Integer> letterCountMap;
    public static void constructLetterMaps() throws FileNotFoundException{
    File pointvals = new File(letterFileLoc);
    Scanner pts = new Scanner(pointvals);
    while (pts.hasNext()){
        String [] parts = pts.next().split(",");
        char alpha = (parts[0]).charAt(0);
        int counts = Integer.parseInt(parts[1]);
        int values = Integer.parseInt(parts[2]);
        letterValueMap.put(alpha, values);
        letterCountMap.put(alpha, counts);
      }

当我输入值时,我不断收到空指针异常。我不明白为什么。有人可以解释一下吗?

最佳答案

您需要像这样初始化letterValueMapletterCountMap:

letterValueMap = new HashMap<Character, Integer>();
letterCountMap = new HashMap<Character, Integer>();

将该代码放在类中的任何位置,在使用两个 Map 之前将运行该代码。

您还可以在声明时初始化它们,如下所示:

public static Map<Character, Integer> letterValueMap = new HashMap<Character, Integer>();
public static Map<Character, Integer> letterCountMap = new HashMap<Character, Integer>();

关于java - 如何消除java中的空指针异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29857476/

相关文章:

Java Swing 透明度绘制问题

java - 不明白这个 HashMap 增量语法

java - 在 HashMap 中存储总和和频率背后的直觉

java - JavaFx 窗口很少

java - Java API文档中profile(compact1,compact2,compact 3)的含义是什么?

Java 从字符串中删除/删除多个单词

java - 在 Retrofit 中将参数添加到 url 的末尾

C:在哈希表中存储多达一百万个条目

java - 对象引用的线程安全重置

java - Java中树形结构中的HashMap