你可以将一个新的数组作为方法参数传递,并且在这个数组中保留数据吗?
例如,我有这个方法:foo(String[])
,我想像这样调用它:foo(new String[] s = {"String1", "String2"})
。但这不是有效的Java代码。
这是一种“有效的Java方式”(即,它可以编译并实现您想要的功能):
foo(new String[] {"String1", "String2"});
如果您有机会更改此方法,那么您也可以考虑将该方法更改为接受varargs参数:
public void foo(String... strings) {
// ...
}
然后您就可以按如下方式使用它,无需显式创建数组:
foo("String1", "String2");
接下来的也是有效的:
foo("String1");
和
foo("String1", "String2", "String3");
以及更多。
s
并将其保留,那么不,你不能在方法调用内部声明变量。你必须先在调用外部声明它:String[] s = {"String1", "String2"};
foo(s);
你可以在调用中初始化s
,但我不认为有任何理由这样做,而且看起来很糟糕:
String[] s;
foo(s = new String[] {"String1", "String2"});
s
,可以像这样操作:foo(new String[] {"String1", "String2"});
你不能声明一个变量,但是你可以传递一个数组:
foo(new String[] { "String1", "String2" });
你可以直接这样做:foo(new String[]{"String1", "String2"})