0

我需要在我的 gwt-project com.google.gwt.json.client包中找到一种方法来实现 json 实现,而不是在 GWT 中找到 json com.google.gwt.json package

在我的 GWT 项目中,我想使用自己编写的 json 实现并存储在我的项目中的一个包中,其路径与 GWT json 包的路径相同。

这个包里面的文件是com.google.gwt.json.client我自己实现的,在我的项目中保存在同一个包中,如何在项目中配置使用这些包而不是原来的。

任何有关此的建议将不胜感激。

谢谢大家..

更新:为了更清楚地说明我在寻找什么:在 GWT 中使用 JSONUtils 进行解析时,使解析器使用我的项目com.google.gwt.json包中编写的 JSONObject,并在包中安装 GWT-json com.google.gwt.json

4

1 回答 1

2

有时需要修改某些 GWT 核心类,因为要么需要修复问题,要么需要向它们添加新特性。

例如,要覆盖任何 GWT 实现类,com.google.gwt.json.client.JSONObject您只需在 src 文件夹中使用相同的路径复制和修改该类:src/main/java/com/google/gwt/json/client/JSONObject.java如果您使用的是 maven, src/com/google/gwt/json/client/JSONObject.java否则。

您唯一需要注意的是,您的src文件夹在您的类路径中比 gwt sdk 排在第一位,而使用 maven,默认情况下是这样。您还应该知道,当您更新 gwt 版本时,您可能需要更新您的实现。

如果您尝试覆盖的类的实例是使用GWT.create()调用在 GWT 中创建的,您可以用您自己的实现替换该类,并<replace-with>.gwt.xml. 这种技术称为延迟绑定。情况并非如此,因为JSONObject通常使用new.

最后,< super-source > 标记可用于在编译时覆盖任何类实现。尽管super-source旨在jre通过实现覆盖类gwt,但将 gwt 替换为其他 gwt 实现是可行的。在这种情况下,您必须将具有相同命名空间结构的修改后的类放在super-source标记指向的文件夹中。

于 2013-04-17T10:14:26.913 回答