我有一个文件,其值如下:
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);
}
当我输入值时,我不断收到空指针异常。我不明白为什么。有人可以解释一下吗?
最佳答案
您需要像这样初始化letterValueMap
和letterCountMap
:
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/