【发布时间】:2011-03-27 14:28:06
【问题描述】:
@Spence 问了这个Previous Question。
那么,这在 Java 中是如何工作的? Java在运行时会丢弃泛型类型,那么用不同泛型类型实例化的类的静态变量会发生什么?
【问题讨论】:
@Spence 问了这个Previous Question。
那么,这在 Java 中是如何工作的? Java在运行时会丢弃泛型类型,那么用不同泛型类型实例化的类的静态变量会发生什么?
【问题讨论】:
Java 中的静态成员不能具有来自包含它们的类的泛型类型参数。
public class Gen<T> {
public static T foo; // compiler error
}
【讨论】:
静态变量在该类型的所有实例之间共享,即使是不同类型参数的实例。
来自generics tutorial,第 14 页:
因此,静态变量 和类的方法也是共享的 在所有实例中。因此 引用类型是非法的 a 中类型声明的参数 静态方法或初始化程序,或在 a 的声明或初始化器 静态变量。
【讨论】: