synchronized
與 finalize()
加了不會出問題,但是 GWT 會直接忽略。IsSerializable
或是 Serializable
FooEnum.FOO
,就只會傳 FOO
,裡頭的 field 值一概忽略。Foo
是符合 RPC 規範的 class,fooList
是 ArrayList<Foo>
,when-type-is
的 class 沒有限定一定要 interface(官方文件好像也沒特別註明), 目前測試用 abstract class 也沒有問題。$wnd
是對應到 JS 的 window
,也就是說 JSNI 的 $wnd.alert()
就等於 JS 的 window.alert()
。 如果需要 JS 的全域變數,基本上就只能讓 $wnd
多加一個變數來處理, 實際上這等同在 host page 的 <script>
宣告一個變數:$doc
是對應到 JS 的 document
。 注意,如果在 JSNI 裡頭直接操作 document
,並不會是 host page 的 document
instance, 而是 host page 裡頭某個 iframe 裡頭的 document
。 這背後機制暫時不明... [死][]
產生一個 class array 作為回傳值,基本上是不可行, 因為(以 Java 的觀點)缺乏 class 的資訊,而且到了執行期才會真正炸 cast 錯誤。 目前找到最簡單的方法就是自己用 Java 重新包一次... ==",例如:注意 ######請不要忘記這是 JS、這是 JS、這是 JS(很重要所以要講三次), 所以隨便 casting 是很合理的(謎之聲:教練我想寫 Java [淚目])。
JavaScriptObject
。 繼承 JavaScriptObject
的 class 必須:package
等級的 class modifierprotected
等級的 default constructorJsonUtils.safeEval()
就會得到 JavaScriptObject
或其子孫,端看泛型怎麼指定。 後續呼叫 JavaScriptObject.cast()
也可以轉成想要的(繼承 JavaScriptObject)的 class。T
給 primitive type 的 wrapper,public native <T> getField(String fieldName) /*-{ return this[fieldName]; }-*/;
。long
,compiler 會報錯,用 Long
就沒問題test()
會得到如「11 != 2」這種結果。 所以保險起見還是統統 拿去作雞精 轉成標準 class instance。 注意: 只有 production mode 才會炸,SDM 結果正常。Date
轉換:<>
就炸了,但是 Eclipse 不會炸錯誤 Orz)gwt.xml
當中要加上有要實作的語系extend-property
然後也找得到對應的 properties 檔。 而且 default 的 properties 檔案還是不能少...... =="<collapse-all-properties />
好像不受影響(還是我誤會了這個設定值的意義...... Orz)<meta>
ImageResource
的 Image
如果要調整大小,LoadEvent
,不過即使 setVisible(false)
也沒關係。