什么是最好的方式来填充以下数组:
从主要:
String[][] data = new String[x][3];
for(int a = 0; a < x; a++){
data[a] = someFunction();
}
我正在使用的功能......:
public String[] someFunction(){
String[] out = new String[3];
return out;
}
有可能做这样的事吗?或者我必须用for循环填充它吗?
使用此代码即可获得错误&#34;非静态方法someFunction()无法从静态内容引用---&#34;(netbeans)在行data[a] = someFunction();
答案 0 :(得分:1)
您必须指定数组包含的行数。
String[][] data = new String[n][];
for(int i = 0; i < data.length; i++){
data[i] = someFunction();
}
请注意someFunction
可以返回不同长度的数组。
当然,您的someFunction
会返回一个空引用数组,因此您仍需要在某个循环中初始化该数组的String
。
我刚刚注意到你得到的错误。将您的someFunction
更改为静态。
答案 1 :(得分:0)
通过添加&#34;静态&#34;来改变你的someFunction()。
你也应该考虑使用ArrayList来完成这些任务,这些任务是动态的,并且是为了你的目的而设计的(我猜)。
public static void main(String[] args){
int x = 3;
String[][] data = new String[x][3];
for(int a = 0; a < x; a++){
data[a] = someFunction();
}
}
public static String[] someFunction(){
String[] out = new String[3];
return out;
}
问候蒂姆