@Spence问了这个Previous Question。
那么,Java中的工作方式如何?通用类型在运行时在Java中被丢弃,那么使用不同泛型类型实例化的类的静态变量会发生什么?
答案 0 :(得分:7)
Java中的静态成员不能包含来自包含它们的类的泛型类型参数。
public class Gen<T> {
public static T foo; // compiler error
}
答案 1 :(得分:4)
静态变量在该类型的所有实例之间共享,即使是不同的类型参数也是如此。
来自generics tutorial,第14页:
结果,静态变量 和类的方法也是共享的 在所有情况中。这就是为什么 引用该类型是非法的 一个类型声明的参数 静态方法或初始化程序,或在 a的声明或初始化程序 静态变量。