我得到一個數組越界異常。我知道它是因爲數組是空的,但我在嘗試使用它的內容之前對長度進行了檢查。但它甚至不會執行檢查,因爲它說數組導致空指針異常。任何人有任何想法爲什麼把它扔掉?數組越界和空指針異常
下面的代碼
private void createGroupTree(ArrayList<String> groupList) throws JWNLException {
WordNetMeasures wordNet = new WordNetMeasures();
String[] wordResult;
for(int i = 0; i<groupList.size(); i++) {
wordResult = wordNet.getWordNetPath(groupList.get(i));
if(wordResult.length == 0) {
graph.addVertex(groupList.get(i));
} else {
for(int j=0; j<wordResult.length; j++) {
if(j !=wordResult.length-1) {
graph.addEdge(edgeFactory.create(), wordResult[j], wordResult[j+1]);
}
}
}
}
}
這裏的getWordNetPath方法導致此問題的代碼。我知道列表中的一些單詞不在正在使用的字典中,我只是不知道如何處理來發出它的原因。
public String[] getWordNetPath(String word) throws JWNLException {
RiWordnet wordnet = new RiWordnet();
//String wordOne = "dog";
String[] posOfWord = wordnet.getPos(word);
int[]wordIds = wordnet.getSenseIds(word, posOfWord[0]);
String[] wordResults = wordnet.getHypernymTree(wordIds[0]);
return wordResults;
}
你可能會對[此java初學者的調試教程]感興趣(http://keysersblog.wordpress.com/2014/04/21/debugging-java-code-a-beginners-guide/)。我寫它幫助人們開始基本的調試。 – keyser
要麼你得到一個ArrayIndexOutOfBoundsException *或*你得到一個NullPointerException。你不能同時獲得。這並沒有幫助,你沒有告訴我們你在哪裏得到的例外 - 它也不會幫助你的代碼是nastily縮進:( –
我得到了兩個。我得到ArrayIndexOutOfBounds上線wordResult = wordNet.getWordNetPath(groupList.get(i)),並得到行上的nullPointer if(wordResult.length == 0)。對於縮進感到抱歉...一旦完成編碼,我就修復了這一切。 。奇怪的方法,但它只是我的方式 – user3469624