Answers:
m(new String[]{"blah", "hey", "yo"});
Draemon是正确的。您也可以声明m
为采用varargs:
void m(String... strs) {
// strs is seen as a normal String[] inside the method
}
m("blah", "hey", "yo"); // no [] or {} needed; each string is a separate arg here
void m(String... strs, Integer... intgrs)
例如。
void m(Integer i, Double d, String... str)
(String ... strs)
另一种方法是,如果希望将结果作为内联的List,则可以这样进行:
Arrays.asList(new String[] { "String1", "string2" });
Arrays.asList("string1", "string2", ...)
List
在type[]
何处的单个元素type
。例如Arrays.asList([some ints])
导致一个List<int[]>
。
set
返回的值List
,它将修改数组。
您可以直接使用现代Java编写数组,而无需初始化。您的示例现在有效。无论如何,通常最好还是命名该参数。
String[] array = {"blah", "hey", "yo"};
要么
int[] array = {1, 2, 3};
如果必须内联,则需要声明类型:
functionCall(new String[]{"blah", "hey", "yo"});
或使用varargs(可变参数)
void functionCall(String...stringArray) {
// Becomes a String[] containing any number of items or empty
}
functionCall("blah", "hey", "yo");
希望Java的开发人员将允许在 未来
Kotlin使处理数组变得非常容易!对于大多数类型,只需使用arrayOf
,它将隐式确定类型。什么也不让他们空着。
arrayOf("1", "2", "3") // String
arrayOf(1, 2, 3) // Int
arrayOf(1, 2, "foo") // Any
arrayOf<Int>(1, 2, 3) // Set explict type
arrayOf<String>() // Empty String array
基元具有实用功能。什么也不让他们空着。
intArrayOf(1, 2, 3)
charArrayOf()
booleanArrayOf()
longArrayOf()
shortArrayOf()
byteArrayOf()
如果您已经有一个Collection
并希望将其转换为内联数组,则只需使用:
collection.toTypedArray()
如果需要强制使用数组类型,请使用:
array.toIntArray()
array.toLongArray()
array.toCharArray()
...
doSomething({"blah", "hey", "yo"})
,这是原始问题要问的问题。
我想补充一点,数组初始化语法非常简洁和灵活。我用它来从我的代码中提取数据并将其放在更有用的地方。
例如,我经常创建如下菜单:
Menu menu=initMenus(menuHandler, new String[]{"File", "+Save", "+Load", "Edit", "+Copy", ...});
这将允许我编写代码来设置菜单系统。“ +”足以告诉它将该项放置在上一项之下。
我可以通过方法命名约定将其绑定到menuHandler类,方法是将我的方法命名为“ menuFile,menuFileSave,menuFileFileLoad ...”,然后进行反射性绑定(还有其他选择)。
这种语法使AMAZINGLY的菜单定义非常简短,并且可以极大地重用“ initMenus”方法。(但是,我不会再使用它,因为编写它总是很有趣,并且只需要几分钟和几行代码)。
每当您在代码中看到模式时,请查看是否可以将其替换为类似的格式,并始终记住数组初始化语法的简洁程度!
另一种选择是在org.apache.commons.lang3中使用ArrayUtils.toArray
ArrayUtils.toArray("elem1","elem2")
正如Draemon所说,Java最接近内联数组的地方是new String[]{"blah", "hey", "yo"}
有一个巧妙的技巧,可以让您做类似的事情
array("blah", "hey", "yo")
自动推断的类型。
我一直在研究一种有用的API,用于扩展Java语言以允许内联数组和集合类型。有关更多详细信息,请使用google project Espresso4J或在此处查看