我知道GWT不会模拟这种方法,但我需要提供其功能的smth。 我尝试过下一个方法:
private static <T extends Widget> T createWidget(Class<T> widgetClass) {
return GWT.create(widgetClass);
}
但是当我尝试编译它时,我收到一个错误: 只有类文字可用作GWT.create()
的参数那么,我怎样才能编写一个模拟Class#newInstance
的上述方法?
答案 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;
}