GWT中的#newInstance类

时间:2013-04-04 20:02:36

标签: gwt

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

    private static <T extends Widget> T createWidget(Class<T> widgetClass) {
        return GWT.create(widgetClass);
    }

但是当我尝试编译它时,我收到一个错误: 只有类文字可用作GWT.create()

的参数

那么,我怎样才能编写一个模拟Class#newInstance的上述方法?

1 个答案:

答案 0 :(得分:0)

GWT.create()总是需要将类文字作为参数,这意味着你必须传递这个:GWT.create(MyClass.class)而不是其他东西。

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

如果您计划将GWT.create用于简化且众所周知的课程,您可以这样做:

private static <T extends Widget> T createWidget(Class<T> widgetClass) {
    if (ClassA.class.equals(widgetClass))  {
       return GWT.create(ClassA.class);
    } else if (ClassA.class.equals(widgetClass))  {
       return GWT.create(ClassB.class);
    }
    return null;
}