Java 空指针异常:空错误
我有这个散列集代码,当我尝试在上面运行我的编译方法时,我得到了Null指针异常:Null error。代码如下:Java 空指针异常:空错误,java,hashset,Java,Hashset,我有这个散列集代码,当我尝试在上面运行我的编译方法时,我得到了Null指针异常:Null error。代码如下: private void initKeywords() { keywords = new HashSet<String>(); keywords.add("final"); keywords.add("int"); keywords.add("while"); keywords.add("if
private void initKeywords() {
keywords = new HashSet<String>();
keywords.add("final");
keywords.add("int");
keywords.add("while");
keywords.add("if");
keywords.add("else");
keywords.add("print");
}
private boolean isIdent(String t) {
if (keywords.contains(t)) { ***//This is the line I get the Error***
return false;
}
else if (t != null && t.length() > 0 && Character.isLetter(t.charAt(0))) {
return true;
}
else {
return false;
}
}
您确定正在运行
initKeywords()
之前的isIdent()
?您可能希望从此对象的构造函数调用initKeywords
。关键字或t
为空。无论是使用调试器还是打印语句,都应该很容易确定。如果keywords
为null,我会假设initKeywords()
还没有被调用。我个人尝试远离init方法。如前所述,构造函数充当初始值设定项,静态块也充当初始值设定项:
private final static Set<String> KEYWORDS = new HashSet<String>();
static {
keywords.add("final");
keywords.add("int");
keywords.add("while");
keywords.add("if");
keywords.add("else");
keywords.add("print");
}
private final static Set KEYWORDS=new HashSet();
静止的{
关键词:添加(“最终”);
关键词.添加(“int”);
关键词.添加(“while”);
关键词.添加(“如果”);
关键词.添加(“其他”);
关键词:添加(“打印”);
}
嘿,记住接受你的答案。
private final static Set<String> KEYWORDS = new HashSet<String>();
static {
keywords.add("final");
keywords.add("int");
keywords.add("while");
keywords.add("if");
keywords.add("else");
keywords.add("print");
}