Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将长度未知的字符串数组初始化为null?_Java_Arrays_String_Prolog_Initialization - Fatal编程技术网

Java 如何将长度未知的字符串数组初始化为null?

Java 如何将长度未知的字符串数组初始化为null?,java,arrays,string,prolog,initialization,Java,Arrays,String,Prolog,Initialization,我正在开发这个连接Prolog和JavaGUI的程序。我遇到了这样一个问题,我不知道prolog程序将向java传递多少个解决方案,因此我不能声明固定长度的字符串数组。这是我的代码: String[] options; int i; Query qMeat = new Query(new Compound("meat", new Term[] {new Variable("X")})); i = 0; while(qMeat.hasMoreSolution()){ options[i]

我正在开发这个连接Prolog和JavaGUI的程序。我遇到了这样一个问题,我不知道prolog程序将向java传递多少个解决方案,因此我不能声明固定长度的字符串数组。这是我的代码:

String[] options; int i;
Query qMeat = new Query(new Compound("meat", new Term[] {new Variable("X")}));
i = 0;

while(qMeat.hasMoreSolution()){
   options[i] = "" + qMeat.nextSolution().get("X");
   i++;
}
我得到了这个NullPointerException,我想这是因为我没有将字符串数组初始化为null。我不知道该怎么做。我尝试了
java.util.array.fill(选项“”)
,但没有帮助=(


请提供帮助。

如果您事先不知道所需的数组大小,则应使用ArrayList

List<String> options = new ArrayList<>();
while(qMeat.hasMoreSolution()){
   options.add("" + qMeat.nextSolution().get("X"));
}
List options=new ArrayList();
while(qMeat.hasMoreSolution()){
options.add(“+qMeat.nextSolution().get(“X”));
}

您在问“如何在Java中创建数组?”(声明包含数组引用的变量与创建数组不同)嗯…对不起。我的意思是..我如何将长度未知的字符串数组初始化为null..因为我得到了这个NullPointerException,因为我没有初始化它。有办法吗?(对不起,我的英语很差。)@Ye'ThuraAg没有办法。你必须像@Eran建议的那样使用
ArrayList
below@Ye'ThuraAg它已经初始化为null,这就是为什么会出现异常。啊..非常感谢^ ^我还没有尝试过。