Java中不同类型的泛型类的静态成员是否不同?

Dea*_*n J 5 java generics static

@Spence问了这个上一个问题.

那么,如何在Java中工作?通用类型在运行时在Java中被丢弃,那么使用不同泛型类型实例化的类的静态变量会发生什么?

cle*_*tus 7

Java中的静态成员不能包含来自包含它们的类的泛型类型参数.

public class Gen<T> {
  public static T foo; // compiler error
}
Run Code Online (Sandbox Code Playgroud)


new*_*cct 5

静态变量在该类型的所有实例之间共享,甚至是不同类型参数的实例。

来自泛型教程,第 14 页:

因此,类的静态变量和方法也在所有实例之间共享。这就是为什么在静态方法或初始化程序中,或者在静态变量的声明或初始化程序中引用类型声明的类型参数是非法的。