Java数组作为参数
你可以将一个新数组作为方法传递,并且仍然在该数组中有数据吗?
例如,我有这个方法: foo(String[])
,我想像这个foo(new String[] s = {"String1", "String2"})
一样调用它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");
甚至更多。
如果你试图创建一个局部变量并保持它,不,你不能在方法调用中声明一个变量。 您必须先在通话之外声明它:
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”})