1
我正在構建一個應用程序,其中包含大量表(或表單),用於表示給定數據行的詳細信息。 有些是相當大的,它不是必須逐個添加字段(與處理程序,邏輯等)。從豆動態構建表
我想要的是有一個工廠能夠建立給定一個bean的表單(或表)。 我創建了一個相當不錯的工廠使用Java反射只發現GWT不支持它...
有沒有什麼能滿足我的需求?
我正在構建一個應用程序,其中包含大量表(或表單),用於表示給定數據行的詳細信息。 有些是相當大的,它不是必須逐個添加字段(與處理程序,邏輯等)。從豆動態構建表
我想要的是有一個工廠能夠建立給定一個bean的表單(或表)。 我創建了一個相當不錯的工廠使用Java反射只發現GWT不支持它...
有沒有什麼能滿足我的需求?
因爲GWT的編譯是單片(在編譯時可能沒有未知的類,但在運行時使用),這意味着可以生成代碼。
因爲可以生成它,這意味着您可以在使用所謂的deferred binding進行GWT編譯期間執行此操作。 GWT生成器可以對編譯時已知的類使用反射,它只是一個獨立的API而不是java.reflect
(就像Java Annotation Processors也使用獨特的API一樣)。因此,您可以通過共同標識符來確定代中需要考慮的類(例如,它們都實現相同的標記接口,或者擴展相同的基類),併爲每個表生成一個表/表單,以及:
GWT.create()
你的接口,就像PlaceHistoryMapperWithFactory
,UiBinder
或SimpleBeanEditorDriver
一樣工作。Class<?>
對象的正確表/表格(使用級聯的if (klazz == Foo.class) { return new … } else if …
);會的工作方式類似於RequestFactory的RequestContext.create()
所有你會看到你的代碼是:
GWT.create()
GWT.create()
來觸發發生器並取回生成的實現它