考虑到性能,您将如何存储多个覆盖类型以供整个 GWT 应用程序根据请求使用?
最佳答案
如果我理解正确,您希望从应用程序中的任何位置引用覆盖类型。在这种情况下,请考虑创建一个公共(public)静态
变量。
例如,假设我们有一个名为 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 中任何“全局”变量的工作原理。覆盖类型的工作方式恰好相同!
请注意,将实例
放入Book类中并不会发生什么神奇的事情。你可以很容易地做同样的事情:
public class FooBar{
public static Book global_book;
}
及以后:
FooBar.global_book.setName("My Biography")
关于java - GWT:全局 javascript 覆盖类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9353051/