在PHP中,你可以做到以下幾點:初始化數組中的方法參數
method(array("a", "b"));
你能在Java中初始化字符串數組作爲方法調用的參數,像tihs:
method(new String[] = {"a", "b"});
謝謝!
在PHP中,你可以做到以下幾點:初始化數組中的方法參數
method(array("a", "b"));
你能在Java中初始化字符串數組作爲方法調用的參數,像tihs:
method(new String[] = {"a", "b"});
謝謝!
Java有一個等價的結構:
import java.util.Arrays;
public class Foo {
public void method(String[] myStrArray) {
System.out.println(Arrays.toString(myStrArray));
}
public static void main(String[] args) {
Foo foo = new Foo();
foo.method(new String[]{"hello", "goodbye"}); // **array created inline**
}
}
沒有
但我們有匿名類。
foo(new Runnable(){public void run(){}});
你肯定可以在Java中創建數組內聯(這表現在@氣墊船和我自己的答案)。關於匿名課堂,這與問題甚至有什麼關係? – missingfaktor 2011-05-22 05:55:56
@拒絕OP要的是默認參數。不是在方法調用中的參數 – 2011-05-22 07:44:17
@Jigar:我不這麼認爲。在@ Hovercraft的答案下看到他的評論。他似乎誤解了這個問題。我會解決這個問題。 – missingfaktor 2011-05-22 07:51:44
Java有可變參數的方法:
public void foo(String ... args){
for(String arg : args){
// do something
}
}
可以調用具有0至n個參數這樣的方法,編譯器從所述參數創建一個數組,例如該方法相當於此簽名:
public void foo(String[] args)
謝謝,非常整齊。 – aksamit 2011-05-21 12:32:13
@氣墊船的回答顯示瞭如何創建Java中的數組內聯。
您可以通過使用實用方法(利用Java的受限類型推斷)來擺脫冗餘數組類型註釋,從而進一步改進該解決方案。
代碼:
import java.util.Arrays;
// Utility class
class Array {
public static <A> A[] of(A ... elements) {
return elements;
}
}
// Main class
class Main {
public static void method(String[] s) {
System.out.println(Arrays.toString(s));
}
public static void main(String[] args) {
method(Array.of("a", "b", "c"));
}
}
我從來沒有見過這個。感謝您的教育! – 2011-05-21 18:53:09
@Hovercraft:不客氣。 :-) – missingfaktor 2011-05-22 05:59:02
是的,這正是我想達到的。謝謝! – aksamit 2011-05-21 12:33:27
@aksamit:不客氣! – 2011-05-21 12:48:47
+1。查看我的答案,瞭解如何擺脫多餘的類型註釋。 – missingfaktor 2011-05-21 18:51:15