Class 扩展不同基础的包装器 class

Class wrapper extending different base class

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

我正在考虑创建一个名为 RectangleWrapper 的包装器 class,它将扩展标准矩形 class 或相同 class 的 gwt 版本].

在共享代码中,我将用我的 Rectangle 替换我所有的 Rectangle2D.Double 并根据最终布尔值我的包装器 class (compiler flags java) 将扩展到或另一个矩形 class.

这是否可能或是否有更好的方法?

我刚刚获取了我的 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 调用(客户端调用服务器端,您可以在其中使用任何您喜欢的东西,并且 return 结果异步),但事实并非如此。