我遵循了从其他SO帖子构建静态哈希图的建议,但是现在当我尝试访问HashMap中的信息时,我遇到了一个空点异常。有什么想法吗?
public final class EMUtil {
static private HashMap<String,TreeSet<String>> EMGroups;
static{
HashMap<String,TreeSet<String>> EMGroups = new HashMap<String, TreeSet<String>>();
TreeSet<String> temp=new TreeSet<String>();
temp.addAll(returnArray("99201","99202","99203","99204","99205"));
EMGroups.put("Set 1",temp);
temp=new TreeSet<String>();
temp.addAll(returnArray("99211","99212","99213","99214","99215"));
EMGroups.put("Set 2",temp);
...
}
static public boolean isEM(String curCPT){
if((curCPT.compareTo("99200")>0)&&(curCPT.compareTo("99311")<0)){
for(TreeSet<String> value:EMGroups.values()){
if(value.contains(curCPT)){
return true;
}
}
}
return false;
}
知道发生了什么吗?如果我尝试拥有一组我可以访问的集合,以检查字符串是否在该集合中的组中/它在哪个组中,是否有更好的方法来构建它?
static{
HashMap<String,TreeSet<String>> EMGroups = new HashMap<String, TreeSet<String>>();
此变量声明隐藏静态 EMGroups 类成员。应该是:
static{
EMUtil.EMGroups = new HashMap<String, TreeSet<String>>();
虽然你实际上可以放弃"EMUtil"。