2014-01-30 38 views
3

在GWT,我有,我想動態實例AA通用Class<T>一個T創建一個給定的類的實例

class MyGenericClass<T> { 

    void foo(Class<T> clazz) { 

    ... 
    T t = GWT.create(clazz); //I want to instantiate T 
    } 

} 

但我有以下的編譯錯誤:

只有類文字可能會被用作參數GWT.create()

那麼如何實例化這個類?

在另一個線程我發現:

GWT.create(Reflection.class).instantiate(YourClass.class); 

但我沒有找到一個與此實例化方法稱爲Reflection類。

+0

我的回答對你有幫助嗎?如果是 - 你可以接受,否則保持原樣。 – user1339772

回答

1

創建方法的Java文檔說,這一切

創建(類)的參數必須是一個類的文字,因爲 生產模式編譯器必須能夠靜態確定在編譯期要求 類型時間。這可能會很棘手,因爲在開發模式下使用 類變量可能看起來能夠正常工作。

http://www.gwtproject.org/javadoc/latest/com/google/gwt/core/client/GWT.html#create(java.lang.Class)

總之你不能動態創建實例,類類型必須是靜態地知道在編譯時。

GWT.create(YourClass.class) 
相關問題