我的问题很简单。标准Java可变参数转换器阵列
是否有核心的Java,做下面的代码的方法:
<T> T[] asArray(T... values) {
return values;
}
我试着在阵列类寻找它,但似乎没有这样的方法。
为了给你一个背景:
谁在这个代码工作以前的人决定,可变参数比类构造规则排列的更好(即使它应该是一个数组)。现在我得再添通用阵列作为这样的构造转化这段代码的最后一个参数:
public Clazz(String... values) {
}
这个
public <T> Clazz(String[] values, T[] additionalParameters)
因此,我需要重构所有的地方,此构造用过的。更糟糕的是,还有一些其他课程遵循相同的模式,我需要在将来某个时候修改它们。这就是上面提到的方法asArray可以提供帮助。我知道最好在每次出现时用显式的数组创建替换可变参数(这是我将要做的任何事情),但我仍然想知道是否有这样的方法(仅仅是出于仅仅好奇)。
在Java 8+ ,你可以做'return(T [])Stream.of(values).toArray();'和在早期版本中'返回Arrays.asList(values).toArray(values);'。 –
请注意,通用数组类型(如'T []')具有[受限支持](http://stackoverflow.com/q/529085/113632),并且是常见的错误来源。您应该使用'List'来代替。 –
dimo414
那么,你也可以创建一个与'T ...'值相等的数组。 'T [] tArray = values;' – Jaims