我学习了以下两种创建通用数组的方法。
一个是
@SuppressWarnings("unchecked")
static <T> T[] array1(final Class<T> elementType, final int size) {
return (T[]) Array.newInstance(elementType, size);
}
还有一个是
static <T> T[] array2(final Class<T[]> arrayType, final int size) {
return arrayType.cast(Array.newInstance(arrayType.getComponentType(), size));
}
哪个更好?它们(内部)相同吗?任何情况实际上都是错误的吗?
最佳答案
在幕后,两者实际上做同样的事情,除了在选项 1 中你传递了 T
的类对象,而在选项 2 中你传递了 T []
的类对象。
我更喜欢选项 1,因为它更短且更易于阅读。再一次,它与添加了强制转换的 Array.newInstance
相同,因此我不确定您的方法是否增加了很多值(value)。 :-)
关于java - 创建泛型数组的两种方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17204788/