在。 NET,我可以这样做:
public static T[] CreateAndFillArray<T>(int size) where T : new()
{
T[] array = new T[size];
for (int i = size - 1; i >= 0; i--)
array[i] = new T();
return array;
}
我们必须指定“where T : new()”子句。
如何用 Java 实现?
最佳答案
除非将 T 作为参数传入,否则您将无法在 java 中创建通用“T”类型的数组。
public static <T> T[] createAndFillArray(Class<T> cls, int size) {
T[] result = (T[]) Array.newInstance(cls, size);
for (int i=0; i<size; i++) {
result[i] = cls.newInstance();
}
return result;
}
关于java - 泛型和 "where"子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1671079/