如何在java中删除空指针异常?

时间:2015-04-24 21:06:04

标签: java hashmap

我的文件的值如下:

一个,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);
      }

当我放置值时,我一直得到一个空指针expception。我不明白为什么。有人可以解释一下吗?

2 个答案:

答案 0 :(得分:2)

您需要像这样初始化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>();

答案 1 :(得分:1)

你有

 public static Map<Character, Integer> letterValueMap;
 public static Map<Character, Integer> letterCountMap;

...但你还没有初步化它们。你需要在某个地方调用构造函数; e.g:

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