0
Class<?> baseClass = ...
Object obj = ...
GWT有沒有辦法檢查obj
的類型是否實現/擴展baseClass
? (這是客戶端代碼)。給定一個對象和一個類<?>,我可以告訴對象是否是該類的子類型? (GWT,客戶端)
Class<?> baseClass = ...
Object obj = ...
GWT有沒有辦法檢查obj
的類型是否實現/擴展baseClass
? (這是客戶端代碼)。給定一個對象和一個類<?>,我可以告訴對象是否是該類的子類型? (GWT,客戶端)
JRE emulation reference說isInstance()不支持。
您可以使用obj instanceOf SomeConcrete.class
,並且編譯時必須知道所有類。 GWT編譯器需要在編譯時知道所有類型(以便它可以生成適當的JavaScript代碼),所以真正的運行時反射是不可能的。我認爲GWT的方法是延期綁定,這樣你就不必檢查。
這裏從2008年的谷歌IO是一個presentation關於這個話題:
延遲綁定是一個可插拔的編譯時類型替換和代碼生成機制。這種獨特的程序模塊化方法提供了許多Java反射和動態類加載的好處,而不會影響GWT編譯器優化代碼的能力。
好像有一個這樣的項目,gwt-reflection,但我沒有使用它。