Are static members of a generic class different for different types in Java?

前端 未结 2 1817
暖寄归人
暖寄归人 2021-01-05 19:07

@Spence asked this Previous Question.

So, how\'s that work in Java? Generic types are discarded at runtime in Java, so what happens to static variables of classes

相关标签:
2条回答
  • 2021-01-05 19:18

    Static members in Java can't have generic type arguments from the class that contains them.

    public class Gen<T> {
      public static T foo; // compiler error
    }
    
    0 讨论(0)
  • 2021-01-05 19:23

    Static variables are shared among all the instances of that type, even of different type parameters.

    From the generics tutorial, page 14:

    As consequence, the static variables and methods of a class are also shared among all the instances. That is why it is illegal to refer to the type parameters of a type declaration in a static method or initializer, or in the declaration or initializer of a static variable.

    0 讨论(0)
提交回复
热议问题