“线程中的异常”;“主要”;java.lang.NullPointerException处理ArrayList

“线程中的异常”;“主要”;java.lang.NullPointerException处理ArrayList,java,arraylist,nullpointerexception,Java,Arraylist,Nullpointerexception,我编写了这段代码,其目的是创建一个ArrayList,其中的字符串填充如下: -在循环中,我获取一个ArrayList,将其转换为一个长字符串,然后对其进行散列。 -我获取归属于数组的版本的散列,并对其进行散列。 然后,我使用字符串生成器连接这两个哈希,并将它们添加到我的ArrayList中 但是,当我试图通过打印其中一个结果进行测试时,会出现以下错误: Exception in thread "main" java.lang.NullPointerException at packag

我编写了这段代码,其目的是创建一个
ArrayList
,其中的字符串填充如下: -在循环中,我获取一个
ArrayList
,将其转换为一个长字符串,然后对其进行散列。 -我获取归属于数组的版本的散列,并对其进行散列。 然后,我使用字符串生成器连接这两个哈希,并将它们添加到我的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 ; }}
package\u名称;
导入java.util.ArrayList;
导入java.util.List;
公共类密钥{
public static ArrayList keyStringArray=new ArrayList();
公共静态列表键(){
长x=MainClass.NUM\u个/u个拆分;
对于(int i=0;i
其中,
为空

创建它的对象,然后使用

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

您应该初始化该值。

您希望得到什么
StringBuilder value=null;附加(无论什么)
为空,code>该怎么办?我怀疑您的
哈希拆分
。这并不能回答这个问题。若要评论或要求作者澄清,请在他们的帖子下方留下评论。@gustavohenke我相信是的,根据OP和其他答案。
 StringBuilder value = new StringBuilder();
 alue.append(hashsplit);