由于Java泛型的实现,你不能有这样的代码:
public class GenSet<E> {private E a[];
public GenSet() {a = new E[INITIAL_ARRAY_LENGTH]; // error: generic array creation}}
如何在保持类型安全的同时实现这一点?
我在Java论坛上看到了这样的解决方案:
import java.lang.reflect.Array;
class Stack<T> {public Stack(Class<T> clazz, int capacity) {array = (T[])Array.newInstance(clazz, capacity);}
private final T[] array;}
但我真的不明白发生了什么。