2013-05-18 24 views
2

我有一個情況下,動態地生成實例即 我有地圖樣如何在GWT中動態創建新的實例?

Map<String,Class> classMap=new HashMap<String,Class>(); 
classMap.put("key1",Panel.Class); 
classMap.put("key2",Panel1.Class); 
classMap.put("key3",Panel2.Class); 
Class clazz=map.get("key"); 
GWT.create(clazz); 

當我編譯使用GWT Compile我得到異常

Compile with -strict or with -logLevel set to TRACE or DEBUG to see all errors. 
    [ERROR] Errors in 'com/asklepian/web/Sample/sample.java' 
     [ERROR] Line 19: Only class literals may be used as arguments to GWT.create() 

是有沒有更好的辦法來實現相同。提前感謝

+4

http://stackoverflow.com/questions/3034881/how-to-create-new-instance-from-class-name-in-gwt – 2013-05-18 15:54:19

+2

在GWT中沒有反射。您只能將靜態編譯到調用中的東西傳遞給GWT.create()。 – Deanna

回答

1

檢索類對象是通過向類名添加小寫「.class」來完成的。
所以也許改變你的地圖到
classMap.put("key1",Panel.class);
classMap.put("key2",Panel1.class);
classMap.put("key3",Panel2.class);
並嘗試重新編譯。