ошибка при использовании isEmpty () в connectedhashset - PullRequest
0 голосов
/ 19 ноября 2011

Я использую связанный хешсет для хранения моего списка синонимов.если для моего поискового слова есть синоним, будет сделано какое-то утверждение.Однако, когда для моего поискового слова нет синонима, могут возникнуть некоторые ошибки.Ниже приведена часть моей программы.

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

Эта ошибка "java.lang.NullPointerException" возникает, когда нет синхронизации для поискового слова.Может кто-нибудь мне помочь?Заранее спасибо.

1 Ответ

2 голосов
/ 19 ноября 2011

На основании ограниченной информации я предполагаю, что NPE происходит на линии цикла for, когда вы делаете sunset.lenght. Публикация трассировки стека значительно облегчила бы ответ.

Попытка:

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