泛型默认构造函数Java

Rav*_*eja 9 java generics

public class Sample<T>{

 T data;

   Sample(){

     data = ????;

  }

}
Run Code Online (Sandbox Code Playgroud)

如何为数据分配默认值?

joh*_*cip 8

Bozho是对的(你做不到).如果您确实希望它以值开头,请将该值作为构造函数的参数.例如:

public class Sample<T> {
  T data;
  Sample(T data) {
     this.data = data;
  }
}
Run Code Online (Sandbox Code Playgroud)


Boz*_*zho 7

你不能.该类型在运行时T 被擦除,因此您无法实例化它.

如果将Class参数传递给Sample(..)构造函数,则可以调用clazz.newInstance()

  • *"你不能."*...除非默认值为"null".:-) (7认同)