因此,存在 Arrays.asList(T... a)
,但它适用于varargs。
如果我已经在T[] a
中包含数组了怎么办?是否有一种方便的方法可以从中创建List<T>
,或者我必须手动执行以下操作:
static public <T> List<T> arrayAsList(T[] a)
{
List<T> result = new ArrayList<T>(a.length);
for (T t : a)
result.add(t);
return result;
}
最佳答案
仅仅因为它与varargs一起工作并不意味着您不能正常调用它:
String[] x = { "a", "b", "c" };
List<String> list = Arrays.asList(x);
唯一棘手的问题是,如果
T
是Object
,则应在其中使用强制类型转换来告诉编译器是否应将参数包装在数组中:Object[] x = ...;
List<Object> list = Arrays.asList((Object[]) x);
或者
Object[] x = ...;
List<Object[]> list = Arrays.asList((Object) x);
关于java - Arrays.asList(T [] array)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5514536/