为什么Java中的泛型只能用于类而不适用于原始类型?
例如,这很好用:
List<Integer> foo = new ArrayList<Integer>();
但是不允许这样做:
List<int> bar = new ArrayList<int>();
Java中的泛型是一个完全编译时的结构-编译器将所有泛型使用转换为正确的类型。这是为了保持与以前的JVM运行时的向后兼容性。
此:
在Java中,泛型的工作方式与它们的工作方式……至少部分相同,因为在设计语言后数年将它们添加到了语言中[[1
public class Container<T> {
private T data;
public T getData() {
return data;
}
}
将在运行时显示为,