0
隨着考慮性能,你會怎麼存儲多種類型的疊加爲您GWT應用程序的整個應要求使用?GWT:全局JavaScript覆蓋類型
隨着考慮性能,你會怎麼存儲多種類型的疊加爲您GWT應用程序的整個應要求使用?GWT:全局JavaScript覆蓋類型
如果我理解正確,你是想你的應用程序中的任何地方引用疊加類型。在這種情況下,請考慮創建一個public static
變量。
例如,假設我們有一個JavaScript覆蓋型稱爲Book
。在它的內部,我們可以創建一個靜態變量來保存我們的全局實例。
public class Book extends JavaScriptObject {
public static Book instance; // The global
protected Book(){}
public final native String getName()/*-{
return this.name;
}-*/;
public final native void setName(String name)/*-{
this.name = name;
}-*/;
}
再後來,我們引用它的地方,我們希望:
Book.instance = (Book) JavaScriptObject.createObject();
Book.instance.setName("How I Sailed the Seven Seas");
GWT.log(Book.instance.getName());
說實話,這是何等的任何「全局」變量在Java中的作品。疊加類型恰好以相同的方式工作!
請注意,沒有魔法通過將instance
Book類的內部發生。你可以很容易地做同樣的事情:
public class FooBar{
public static Book global_book;
}
及更高版本:
FooBar.global_book.setName("My Biography")
你確定你的「Java」的標籤不應該是一個「JavaScript的」標籤? – 2012-02-19 20:54:30
@HovercraftFullOfEels我添加JavaScript代碼,但GWT你寫Java和讓GWT編譯成JavaScript,因此Java代碼是完全合理的。 – 2012-02-19 20:55:29
@AdamMihalcin:謝謝!我對GWT和javascript的無知是我自己沒有更改標籤的原因。 – 2012-02-19 20:56:53