2012-11-06 72 views
-1
while(i<word.length) 
{ 
    ans=swn.extract(word[i], pos[i]); 
    if(ans== null) 
     polarvalue[i]= " "; 
    else 
     polarvalue[i]=ans; 
    i++; 
    System.out.println(ans); 
} 

嗨,朋友這是我的代碼和swn.extracts一個值可以爲空,所以ANS包含空值,當我嘗試訪問它給NULlPOinterException有沒有任何方式我可以檢查NULL值並將其更改爲任何其他值。但是,如果我刪除整個的if..else部分它沒有給出錯誤,並且打印輸出的「NULL」 ......如何訪問NULL值

+0

如果我刪除整個If..else節,那麼代碼將打印空值.. –

+8

請正確顯示發生異常的位置。這可能是由於「word」,「swn」,「pos」或「polarvalue」爲空。 –

+0

ans包含方法EXTRACT的空值,我對它沒問題。我想訪問它。 –

回答

0

如果我刪除整個的if..else部分則代碼打印空 值。

如果上述屬實,意味着你的polarvalue[]陣列是null和您通過使用polarvalue[i]這就是方式,它拋出空指針異常試圖分配ith位置值。 在分配前對polarvalue[]數組進行空檢查。

你的代碼是危險的,它似乎它可以拋出NPE每一個地方像

while(i<word.length) // do a null check 
ans=swn.extract(word[i], pos[i]); // do a null check 
polarvalue[i]= " "; // do a null check 
polarvalue[i]=ans; // do a null check 

做一個空檢查將花費幾分鐘,但降低你最寶貴的時間。