GWT中的类#newInstance

GWT中的类#newInstance,gwt,Gwt,我知道GWT不模拟这种方法,但我需要提供其功能的smth。 我尝试了下一种方法: private static <T extends Widget> T createWidget(Class<T> widgetClass) { return GWT.create(widgetClass); } 私有静态T createWidget(类widgetClass){ 返回GWT.create(widgetClass); } 但当我试图编译它时

我知道GWT不模拟这种方法,但我需要提供其功能的smth。 我尝试了下一种方法:

    private static <T extends Widget> T createWidget(Class<T> widgetClass) {
        return GWT.create(widgetClass);
    }
私有静态T createWidget(类widgetClass){
返回GWT.create(widgetClass);
}
但当我试图编译它时,我得到了一个错误: 只有类文本可以用作GWT.create()的参数。

那么,我如何编写前面提到的方法来模拟
Class#newInstance

GWT.create()
始终需要类文本作为参数,这意味着您必须传递它:
GWT.create(MyClass.Class)

这是因为gwt编译器必须决定在编译时拾取哪个类,请注意,在代码中,该类是在运行时传递的

如果您计划使用
GWT.create
来创建一组简化的众所周知的类,您可以这样做:

私有静态T createWidget(类widgetClass){
if(ClassA.class.equals(widgetClass)){
返回GWT.create(ClassA.class);
}else if(ClassA.class.equals(widgetClass)){
返回GWT.create(ClassB.class);
}
返回null;
}
GWT.create()
始终需要类文本作为参数,这意味着您必须传递以下内容:
GWT.create(MyClass.class)
,而不传递其他内容

这是因为gwt编译器必须决定在编译时拾取哪个类,请注意,在代码中,该类是在运行时传递的

如果您计划使用
GWT.create
来创建一组简化的众所周知的类,您可以这样做:

私有静态T createWidget(类widgetClass){
if(ClassA.class.equals(widgetClass)){
返回GWT.create(ClassA.class);
}else if(ClassA.class.equals(widgetClass)){
返回GWT.create(ClassB.class);
}
返回null;
}