我制作了这段代码,其目的是创建一个填充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 ; }}
答案 0 :(得分:1)
StringBuilder value = null;
value.append(hashsplit);
其中value
为空。
创建它的对象然后使用。
StringBuilder value = new StringBuilder();
alue.append(hashsplit);
答案 1 :(得分:1)
您应该初始化该值。