在linkedhashset中使用isEmpty()时出错

时间:2011-11-19 02:52:22

标签: java linkedhashset

我正在使用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”。谁能帮我?提前谢谢。

1 个答案:

答案 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");
        } 
    }
}