2011-11-19 1 views
-2

내 동의어 목록을 저장하기 위해 linkedhashset을 사용하고 있습니다. 내 검색 단어와 동의어가 있으면 몇 가지 문구가 완성됩니다. 그러나 검색어에 동의어가 없으면 오류가 발생합니다. 아래는 내 프로그램의 일부입니다.linkedhashset에서 isEmpty()를 사용하는 중 오류

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"은 검색 단어의 synset이 없을 때 발생합니다. 누구든지 나를 도울 수 있습니까? 미리 감사드립니다.

+0

무엇 GUIsynonymTA이며가 – Kal

+0

초기화된다 당신이 nullpointer를받을 수 있나요 코드의 어떤 라인? (관련 스택 트레이스 plz) –

+0

예제에서 첫 번째 줄에 중단 점을 설정하고 디버그 모드로 프로그램을 실행하면 디버거를 사용해야합니다. 디버거는 중단 점이있는 줄을 실행하기 전에 코드를 일시 중지합니다. 그런 다음 한 번에 하나씩 실행하여 (스텝 실행) 변수를 검사하여 코드가 언제 어디서 정확히 나 타나는지 확인할 수 있습니다. – zloster

답변

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

고맙습니다. 해결했습니다. –

+0

해결했다면 실제로 대답을 수락하는 것이 좋을 것입니다. – aberrant80

관련 문제