GWT中的类#newInstance
我知道GWT不模拟这种方法,但我需要提供其功能的smth。 我尝试了下一种方法: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); } 但当我试图编译它时
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;
}