2013-04-04 37 views
0

我知道GWT并没有模拟这种方法,但我需要smth来提供它的功能。 我曾尝试另一个方法:GWT中的类#newInstance

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

但是,当我尝试编译它,我得到一个错误: 只有类文字可以作为参数传递给GWT.create()

那么,如何我可以写一个前面的方法来模拟Class#newInstance吗?

+0

什么是GWT克隆? – maks 2013-04-04 21:38:53

回答

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; 
} 
相关问题