我正在使用linkedhashset来存储我的同义词列表。如果我的搜索词有同义词,则会完成一些声明。但是,如果我的搜索词没有同义词,则会出现一些错误。以下是我的计划的一部分。
String[] synset = wordnet.getAllSynsets(keyword, "n");
Set<String> synsetVec = new LinkedHashSet<String>();
for (int k = 0; k < synset.length; k++) {
//store synonym in synsetVec
synsetVec.add(s.Stem(synset[k]));
System.out.println("SynsetVec = " + synsetVec);
if (!synsetVec.isEmpty()) {
//do something here
} else {
GUIsynonymTA.append("No synsets");
}
}
当没有搜索词的synset时,会发生此错误“java.lang.NullPointerException”。谁能帮我?提前谢谢。
答案 0 :(得分:2)
基于有限的信息,我假设当你做sunset.lenght时,NPE正在for循环线上发生。发布堆栈跟踪可以更轻松地回答这个问题。
尝试:
String[] synset = wordnet.getAllSynsets(keyword, "n");
Set<String> synsetVec = new LinkedHashSet<String>();
if(sunset != null){
for (int k = 0; k < synset.length; k++) {
//store synonym in synsetVec
synsetVec.add(s.Stem(synset[k]));
System.out.println("SynsetVec = " + synsetVec);
if (!synsetVec.isEmpty()) {
//do something here
} else {
GUIsynonymTA.append("No synsets");
}
}
}