创建给定类的实例

时间:2014-01-30 15:55:48

标签: java generics gwt

在GWT中,我有一个通用的Class<T>我要在其中动态实例化T

class MyGenericClass<T> {

  void foo(Class<T> clazz) {

    ...
    T t = GWT.create(clazz); //I want to instantiate T
  }

}

但我有以下编译错误:

  

只有类文字可以用作GWT.create()

的参数

那我该如何实例化这个类呢?

在另一个帖子中我发现:

GWT.create( Reflection.class ).instantiate( YourClass.class );

但我没有找到一个名为Reflection的类,并使用此实例化方法。

1 个答案:

答案 0 :(得分:1)

create method的java doc说明了一切

  

create(Class)的参数必须是类文字,因为   生产模式编译器必须能够静态地确定   在编译时请求类型。这可能很棘手因为使用了   类变量似乎在开发模式下可以正常工作。

http://www.gwtproject.org/javadoc/latest/com/google/gwt/core/client/GWT.html#create(java.lang.Class)

简而言之,您无法动态创建实例,在编译时必须静态地知道类类型。

GWT.create(YourClass.class)