java - GWT:全局 javascript 覆盖类型

标签 java javascript gwt global-variables overlay

考虑到性能,您将如何存储多个覆盖类型以供整个 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/

相关文章:

java - 更新 json 类型的列值失败,出现异常

java - 方法的模块化-方法调用时的堆栈操作-java

Java/斯卡拉 Swing : Make a component fill all available space in a row

javascript - 导入 BSON 文档、MongoDB 时出错

javascript - 如何检测您的 React 应用程序是否已在服务器上渲染?

php - GWT 支持 PHP 吗?

java - JSlider getX(), getY() JApplet

javascript - JS - 调用父函数

javascript - 了解 Document.createElement()

gwt - 有没有办法对已经混淆的 GWT javascript 代码进行反混淆,那是我混淆的?