我有一个Java项目,现在我也想将这个代码用于GWT项目,所以我不必两次编写相同的代码。问题是某些类在gwt中不可用,例如java.awt.geom.Rectangle2D.Double
。
我正在考虑创建一个名为RectangleWrapper
的包装类,它将扩展标准Rectangle类或同一类的gwt
版本。
在共享代码中,我会将所有Rectangle2D.Double
替换为Rectangle
,并根据最终布尔值,我的包装类(compiler flags java)将扩展或另一个Rectangle类。< / p>
这是否可行,或者有更好的方法吗?
答案 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;不是这样。