混合Java POJO& GWT覆盖类型

时间:2011-05-19 19:58:20

标签: gwt overlay pojo

在我的应用程序中,我广泛使用JsArray存储我的叠加类型。我使用java.util.List来存储我的客户端Java POJO。

出于性能原因并统一我访问模型的方式,我计划删除列表并仅使用JSO包装器。给定一个可以存储任何Java对象的本机数组的包装器:

 public class JsArrayObject<T> extends JavaScriptObject {

        protected JsArrayObject() {}

        public final native T get(int index) /*-{
            return this[index];
        }-*/;

        public final native void push(T value) /*-{
            this[this.length] = value;
        }-*/;
    }

以这种方式存储Java Objects是否安全?该文档说,当您将Java对象传递给JavaScript时,结果是“通过特殊语法可访问的不透明值”。这听起来让我很困惑。例如,如果我推送一个Integer并尝试获取它,则会抛出异常,因为找到了与Object不同的东西(至少在开发模式下)。其余的Java原始Wrappers也是如此。除了Java原始Wrappers的问题之外,还有其他问题要注意吗?

非常感谢

1 个答案:

答案 0 :(得分:1)

你指的是哪个医生? this page上的那个?

他们谈论的是将Java对象传递给JavaScript,目的是让JavaScript代码使用对象中的方法或字段。可以这样做,但是你必须在JavaScript端使用的语法有点尴尬。如果您已经完成了任何JSNI,那么您已经看过了。

如果您不打算从JavaScript端访问Java对象,则可以忽略有关特殊语法的业务。所以是的,它是安全的。我很想知道它是否真的有助于提高性能。