类包装器扩展不同的基类

时间:2017-01-11 08:33:56

标签: java gwt

我有一个Java项目,现在我也想将这个代码用于GWT项目,所以我不必两次编写相同的代码。问题是某些类在gwt中不可用,例如java.awt.geom.Rectangle2D.Double

我正在考虑创建一个名为RectangleWrapper的包装类,它将扩展标准Rectangle类或同一类的gwt版本。

在共享代码中,我会将所有Rectangle2D.Double替换为Rectangle,并根据最终布尔值,我的包装类(compiler flags java)将扩展或另一个Rectangle类。< / p>

这是否可行,或者有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

我刚接受了一个GWT项目客户端类并添加了以下行:

    if (false) {
        String a = StringEscapeUtils.escapeHtml("lalala");
    }

这显然编译得很好,但是当我启动GWT应用程序时,我得到了这个:

  ERROR: Errors in 'file:/C:/gwtproject/src/main/java/package/ClientSideClass.java'
    ERROR: Line 119: No source code is available for type org.apache.commons.lang.StringEscapeUtils; did you forget to inherit a required module?

所以答案是否定的,你不能使用这样的包装。

还有其他方法可以实现吗?我对此表示高度怀疑 GWT的一个主要功能是用一整套专为Javascript兼容性设计的Web GUI组件替换旧的AWT / Swing桌面GUI组件;没有必要以任何方式提供或支持旧组件。

如果您正在谈论像Apache Commons这样的实用程序库,我可以建议您进行RPC调用(客户端调用服务器端,您可以使用任何您喜欢的方式,并以异步方式返回结果),但是&# 39;不是这样。