[英]Standard Java varargs converter to array
我的问题很简单。
核心Java中是否有一种方法可以执行以下代码:
<T> T[] asArray(T... values) {
return values;
}
我尝试在Arrays类中寻找它,但是似乎没有这种方法。
给你一个背景:
以前从事此代码工作的人认为varargs比类构造函数中的常规数组更好(即使它应该是数组)。 现在,我必须添加另一个通用数组作为构造函数的最后一个参数,从而转换此代码:
public Clazz(String... values) {
}
对此
public <T> Clazz(String[] values, T[] additionalParameters)
结果,我需要重构使用此构造函数的所有位置。 更糟糕的是,还有其他两个类遵循相同的模式,因此我需要在将来的某个时候对其进行修改。 这就是上面提到的asArray方法可以提供帮助的地方。
我知道最好在每次出现时都用显式数组创建替换varargs(无论如何,这就是我要做的事情),但是我仍然想知道是否已经有这样的方法(仅出于好奇)。
JDK不需要提供这种方法,因为您只需构造一个数组即可获得相同的行为-例如:
// these two statements are conceptually identical
String[] a = asArray("a", "b", "c");
String[] b = new String[]{"a", "b", "c"};
你可以做:
T[] a = Stream.of(t1, t2, t3).toArray();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.