标准Java varargs转换器到数组

DeG*_*riz -1 java arrays methods variadic-functions

我的问题很简单.

核心Java中是否有一个方法可以执行以下代码:

<T> T[] asArray(T... values) {
    return values;
}
Run Code Online (Sandbox Code Playgroud)

我尝试在Arrays类中寻找它,但似乎没有这样的方法.

给你一个背景:

之前使用过该代码的人认为varargs比类构造函数中的常规数组更好(即使它应该是一个数组).现在我必须添加另一个通用数组作为构造函数的最后一个参数,从而转换此代码:

public Clazz(String... values) {
}
Run Code Online (Sandbox Code Playgroud)

对此

public <T> Clazz(String[] values, T[] additionalParameters)
Run Code Online (Sandbox Code Playgroud)

因此,我需要重构使用此构造函数的所有位置.更糟糕的是,有一些其他类遵循相同的模式,我需要在将来的某个时候修改它们.这就是上面提到的方法asArray可以提供的帮助.

我知道最好在每次出现时用显式数组创建替换varargs(这也就是我要做的事情),但我仍然想知道是否已经存在这样的方法(仅仅是出于好奇心).

dim*_*414 5

JDK不需要提供这样的方法,因为通过简单地构造数组就可以获得相同的行为 - 例如:

// these two statements are conceptually identical
String[] a = asArray("a", "b", "c");
String[] b = new String[]{"a", "b", "c"};
Run Code Online (Sandbox Code Playgroud)