使用java,
我可以这样做
String[] args = {"FOO", "BAR"};
我不能这样做。
String[] args;
args={"FOO", "BAR"};
这样做
String[] args = null;
if(condition){
String[] foobar = { "Foo", "Bar" } ;
args = foobar;
}else{
String[] fooferBarer = { "Foofer", "Barer" } ;
args = fooferBarer;
}
//use args here .....
这看起来很奇怪..这有更好的方法吗?
感谢阅读。
答案 0 :(得分:19)
要在声明行以外的行上实例化数组,可以使用:
String[] args;
args = new String[] {"FOO", "BAR"};
答案 1 :(得分:1)
您无法执行此操作,因为如果您有一个行声明并实例化String
数组,则会调用隐式new
。所以你必须明确地调用new
来实例化。
考虑以下代码:
String[] args;
就像现在一样,args
只是一个引用变量,并不指向任何对象。要指向一个对象,你必须明确地调用new
来实例化它:
args = new String[] {"FOO", "BAR"};
或者您可以使用内部使用数组的ArrayList<String>
作为数据结构。
答案 2 :(得分:0)
是的,动态数组使用ArrayList
答案 3 :(得分:0)
最好将ArrayList用于动态数组。
答案 4 :(得分:0)
您可以将ArrayList用作
ArrayList<String> args = new ArrayList<String>();
args.add("Foo");
args.add("Bar");
答案 5 :(得分:0)
您必须初始化array
。所以
String[] args;
args = new String[int size];
答案 6 :(得分:0)
因为String[] args = {"FOO", "BAR"};
是Java语法的规则。您可以使用值启动数组,但args={"FOO", "BAR"};
在语法上是错误的,因为这是Java,而不是Python。所以你应该像这样args= new String[]{"FOO", "BAR"};
答案 7 :(得分:0)
你不能这样做:
String[] args;
args={"FOO", "BAR"};
因为args在你做这个之前没有初始化args = {“FOO”,“BAR”}
解决问题的方法:
1)
String[] args = new String[]{"foo","bar"};
2)
String[] args; // here args is NULL
args = new String[] {"FOO", "BAR"};
3)我会以这种方式吸引你,而不是使用String []使用List,对我来说更灵活,看起来更好:
List<String> args = new ArrayList<String>(); // in a case Java 7 use new ArrayList<>();
args.add("foo");
args.add("bar");