我正在宣布一个阵列" params"在一种方法。它仅用于该方法,因此这似乎是合适的。后来我在一系列IF语句中使用它。在引用该数组的第一个语句中,NetBeans抱怨变量"可能永远不会被初始化"。以下是前几行的示例:
private void btnSearchActionPerformed(java.awt.event.ActionEvent evt) {
String[] params;
int count = 0;
if (txtCoN.getText() != null){
params[count] = "Company like " + txtCoN.getText();
++count;
我尝试使用params[0]="";
在delcaration下方初始化,并在初始化时遇到相同的错误。
如何摆脱初始化错误?
提前感谢您的帮助。
答案 0 :(得分:2)
正如一些人已经说过的那样,使用ArrayList
。这就是你如何使用它们。
import java.util.ArrayList;
. . .
ArrayList<String> myList = new ArrayList<String>();
然后添加内容:
myList.add("this");
myList.add("is");
myList.add("a test!");
然后访问它:
myList.get(0)
myList.get(1)
myList.get(2)
答案 1 :(得分:0)
你必须分配一个具有指定大小的数组,你不能只添加更多这样的元素。如果您想要扩展的内容以添加更多元素,您可能希望使用ArrayList。
答案 2 :(得分:0)
在实际设置任何元素之前,您必须创建数组对象(使用new)。
String[] params;
params[0]="";
不正确,因为params还没有元素0
。
声明为
String[] params = new String[SIZE];
Java中的数组也是固定大小的,因此您必须在构造时知道它们的大小。
对于您不知道所需元素数量的情况,数组不是一个好选择。使用一些更高级别的容器类(在java.util
包中找到)。
答案 3 :(得分:0)
使用
String[] params= new String[count];
创建一个新数组,其中变量count可以更改为数组中的项目数。