爲什麼第一個工作,第二個不工作?爲什麼我無法創建一個新的Java數組?
1)確定
String[] foo = {"foo"};
bar.setArray(foo);
2)BAD
bar.setArray({"foo"});
是否有一個快速的方法來創建一個單行的String []?
爲什麼第一個工作,第二個不工作?爲什麼我無法創建一個新的Java數組?
1)確定
String[] foo = {"foo"};
bar.setArray(foo);
2)BAD
bar.setArray({"foo"});
是否有一個快速的方法來創建一個單行的String []?
bar.setArray(new String[] { "foo" });
我相信這種格式是必需的,因爲Java不想暗示數組類型。使用數組初始化格式時,類型由指定變量的類型明確定義。內聯,數組類型不能被推斷。
你應該使用這樣的:
bar.setArray(新的String [] { 「富」});
正如其他人所說:
bar.setArray(new String[] {"foo"});
它計劃允許擺脫在J2SE 5.0 new String[]
的,而是我們有可變參數。使用可變參數,您可以稍微更改setArray
的聲明,以使用...
代替[]
,並溝通new String[] { }
。
public final class Bar {
public void setArray(String... array) {
[...]
}
[...]
bar.setArray("foo");
不幸的是,Java配套內聯陣列最接近的是new String[]{"foo", "bar"}
但是有一種巧妙的方法,可以讓你做這樣的事情
array("foo", "bar")
與自動推斷類型。
我一直在研究一種有用的API來增強Java語言以允許內聯數組和集合類型。欲瞭解更多詳情谷歌項目Espresso4J或檢查出here
這裏只是一個重申Kev的評論鏈接:http://stackoverflow.com/questions/1154008/java-anyway-to-declare-an-array-in -73000558#7300558(是的,我正要標記你;有6面旗幟你會被踢出)。 – BalusC 2011-09-05 02:29:50