你可以通過一個新的數組作爲一種方法,並且仍然有陣列中的數據?Java中的數組作爲參數
例如,我有這樣的方法:foo(String[])
,我想這樣稱呼它foo(new String[] s = {"String1", "String2"})
。但這不是有效的Java。
你可以通過一個新的數組作爲一種方法,並且仍然有陣列中的數據?Java中的數組作爲參數
例如,我有這樣的方法: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」})
如何獲得vaue呢? –