-2

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

2 回答 2

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

哪里value 是空的。

创建它的对象然后使用。

 StringBuilder value = new StringBuilder();
 alue.append(hashsplit);
于 2013-08-07T14:44:12.920 回答
1

您应该初始化该值。

于 2013-08-07T14:45:14.973 回答