处理ArrayLists的线程“main”java.lang.NullPointerException中的异常

时间:2013-08-07 14:43:20

标签: java arraylist nullpointerexception

我制作了这段代码,其目的是创建一个填充ArrayList字符串,如下所示:     - 在循环中我取ArrayList<String>,将其转换为一个长字符串,然后我将其哈希。     - 我获取归因于数组的版本的哈希值并将其哈希。 然后我使用字符串Builder连接两个哈希值并将它们添加到我的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 ; }}

2 个答案:

答案 0 :(得分:1)

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

其中value为空。

创建它的对象然后使用。

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

答案 1 :(得分:1)

您应该初始化该值。