2013-08-07 85 views
-2

我做了這個代碼,具有創造充滿如下字符串ArrayList的目的: -in一個循環我採取ArrayList<String>,將其轉換成一個長串然後我哈希它。 - 我把哈希歸於數組,並散列它。 然後我使用字符串生成器連接兩個散列並將它們添加到我的ArrayList中。異常線程「main」顯示java.lang.NullPointerException處理的ArrayList

然而,當我嘗試通過打印結果的一個測試,我得到這個錯誤:

Exception in thread "main" java.lang.NullPointerException 
    at package_name.Keys.keys(Keys.java:29)  // this lign means value.append(hashsplit); 

我不明白什麼是錯的代碼。任何人都可以提出一些建議嗎?謝謝

下面是代碼:

package package_name; 

    import java.util.ArrayList; 
    import java.util.List; 


    public class Keys { 

public static ArrayList<String> keyStringArray = new ArrayList<String>(); 

public static List<String> keys(){ 
long x = MainClass.NUM_OF_SPLITS; 

      for (int i = 0; i < x+1 ; i++){ 
    ArrayList<String> a = MainClass.splits.get(i).blocks; 
    String listString = ""; 

    for (String s : a) 
    { 
     listString += s + "\t"; 
    } 

    int ver = MainClass.version[i]; //then we should get the version of the split 
    String verr = String.valueOf(ver); 
    // hash the results. 
    String hashsplit =OtherKeys.String2(listString); 
    String hashversion = OtherKeys.String2(verr); 
    StringBuilder value = null; 
    value.append(hashsplit); 
    value.append(hashversion); 
    String key= value.toString(); 
    keyStringArray.add(i, key); 

    } 

return keyStringArray ; }} 
+3

你期望什麼'StringBuilder value = null; value.append(whatever);'做,考慮'value'爲空??? – assylias

+0

我懷疑你的'hashsplits'是'null'。 –

回答

1
StringBuilder value = null; 
value.append(hashsplit); 

其中value爲空。

創建它的對象然後使用。

StringBuilder value = new StringBuilder(); 
alue.append(hashsplit); 
1

您應該初始化該值。

+1

這不提供問題的答案。以批判或作者作出澄清,離開低於其信息的評論中。 – gustavohenke

+1

@gustavohenke我相信它,每OP和其他答案。 – Keng

相關問題