2013-04-04 60 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; 
} 
相關問題