Java中不同类型的generics类的静态成员是否不同?
@Spence问了这个上一个问题 。
那么,Java中的工作方式如何? 通用类型在运行时在Java中被丢弃,那么使用不同generics类型实例化的类的静态变量会发生什么?
Java中的静态成员不能包含来自包含它们的类的generics类型参数。
public class Gen { public static T foo; // compiler error }
静态变量在该类型的所有实例之间共享,即使是不同类型的参数也是如此。
从generics教程 ,第14页:
因此,类的静态变量和方法也在所有实例之间共享。 这就是为什么在静态方法或初始化程序中或在静态变量的声明或初始化程序中引用类型声明的类型参数是非法的。