2011-06-03 74 views
3

對於GWT中的一些自定義客戶端 - 服務器通信代碼,我想動態實現一個類似於Java的Java接口。 lang.reflect.Proxy。由於GWT不包含任何反射支持,我厭惡編寫一個笨重的代碼生成器,所以我想知道是否可以用JSNI和Overlay類型來完成。通過JSNI GWT中的類似於java.lang.reflect.Proxy的功能

我大意如下思考:

  1. 我有一些現有的Java接口,不知何故它的方法和他們的簽名,註釋等的表示(因爲實際的類對象將不在GWT中有任何幫助)。
  2. 我將這種表示形式傳遞給一些JSNI方法,該方法使用它構造一個新的Javascript對象並在其上定義相應的方法。這些方法的實際實現相當簡單,只是將它們的參數寫入某些數據結構並返回null。
  3. 我從JSNI得到一個JavaScript對象,它以某種方式可轉換爲接口類型。在此實例上調用接口的方法時,會調用在步驟2中定義的相應Javascript方法並保存參數。

有沒有人試過類似的東西?原因是什麼原因導致這種情況不能正常工作?

在此先感謝。

回答

0

什麼阻止你在Java中做同樣的事情?有一個工廠方法可以傳遞一些數據,並返回接口的實現。既然你說實現非常微不足道,你將擁有一組有限的具體類。