我需要的是一个通用版本的
我需要的是类似以下内容的东西:
Object[] java.util.Collection.toArray()
或使用T[] java.util.Collection.toArray(T[] array)
的简化版本。目前,我可以这样写:Collection<String> strings;
String[] array = strings.toArray(new String[strings.size()]);
我需要的是类似以下内容的东西:
在IT技术方面,我正在寻找的是:
@SuppressWarnings("unchecked")
public static <T> T[] toArray(Collection<T> collection, Class<T> clazz) {
return collection.toArray((T[]) Array.newInstance(clazz, collection.size()));
}
我可以将其用作:
String[] array = Util.toArray(strings, String.class);
Guava或Commons Collections中是否有类似实现的功能?
当然,我可以编写自己的代码(如上所示),这似乎和toArray(T[] array)一样快。
array
参数,但你愿意为静态方法和类字面值输入类名吗? - chrylis -cautiouslyoptimistic-strings.size()
相等长度的字符数量,这意味着你正在频繁进行此转换。因此答案是:减少转换次数。 - Boris the Spiderstrings.size()
版本比Iterables.toArray()
更难读,并且容易出错(在修改时必须保持两个strings
引用同步)。更进一步地,现在我可以编写Iterables.toArray(fooReturningArray(), String.class)
。 - Mihai