GWT:全局javascript叠加类型

时间:2012-02-19 20:44:16

标签: java javascript gwt global-variables overlay

考虑到性能,如何根据要求为整个GWT应用程序存储多种叠加类型?

1 个答案:

答案 0 :(得分:1)

如果我理解正确,您希望从应用程序的任何位置引用叠加类型。在这种情况下,请考虑创建public static变量。

例如,假设我们有一个名为Book的JavaScript重叠类型。在其中,我们可以创建一个静态变量来保存我们的全局实例。

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")