考虑到性能,如何根据要求为整个GWT应用程序存储多种叠加类型?
答案 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")