Java Map类型创建遇到空指针问题
问题描述:
在类中创建Map类型数据后,我们在使用put()方法时会会遇到空指针问题。
问题代码:
import java.util.HashMap;
public class BCOption {
private HashMap<Integer, BankCount> map;
static int sum = -1;
public BCOption() {
super();
// TODO Auto-generated constructor stub
}
public void kaihu(BankCount bc) {
sum++;
map.put(sum, bc);
}
public void query(int acount) {
BankCount bc = map.get(acount);
System.out.println(bc.show());
}
}
如上面所示编写代码会出现NullPointerException的空指针错误提示。
这是由于在创建Map类型是的初始化带来的问题。
private HashMap<Integer, BankCount> map;
这种初始化时将map=null
没有分配内存地址,导致出现空指针问题。
要解决由于初始化带来的空指针问题可以改一下初始化方式:
private HashMap<Integer, BankCount> map = new Hashmap<Integer, BankCount>();
解决问题代码:
import java.util.HashMap;
public class BCOption {
private HashMap<Integer, BankCount> map = new HashMap<Integer, BankCount>();
static int sum = -1;
public BCOption() {
super();
// TODO Auto-generated constructor stub
}
public static int getSum() {
return sum;
}
public static void setSum(int sum) {
BCOption.sum = sum;
}
public void kaihu(BankCount bc) {
sum++;
map.put(sum, bc);
}
public void query(int acount) {
BankCount bc = map.get(acount);
System.out.println(bc.show());
}
}