我需要找到一个方法来在我的gwt-project com.google.gwt.json.client
包中使用json实现,而不是在GWT com.google.gwt.json package
中使用json。
在我的GWT项目中,我想使用自己编写的json实现,并将其存储在我的项目中的包中,路径与GWT json包的路径相同。
这个包中的文件是com.google.gwt.json.client
由我自己实现并保存在我的项目中的相同包中,如何在项目中配置使用这些包而不是原始包。
对此有任何建议将不胜感激。
感谢所有..
更新:
有关我正在寻找的内容的更多说明:
在GWT中使用JSONUtils进行解析时,使解析器使用我的项目com.google.gwt.json
包中编写的JSONObject,在com.google.gwt.json
包中使用GWT-json。
答案 0 :(得分:2)
有时需要修改某些GWT核心类,因为您需要修复问题,或者需要向它们添加新功能。
要覆盖任何GWT实现类,例如com.google.gwt.json.client.JSONObject
,您只需使用相同的路径复制和修改src文件夹中的该类:src/main/java/com/google/gwt/json/client/JSONObject.java
如果您使用的是maven,{{1 }} 除此以外。
你唯一需要注意的是你的src/com/google/gwt/json/client/JSONObject.java
文件夹在你的类路径中是第一个而不是gwt sdk,默认情况下是maven。您应该也知道,当您更新gwt版本时,可能需要更新您的实现。
如果您尝试覆盖的类的实例是使用src
调用在GWT中创建的,则可以使用{{1}中的GWT.create()
标记替换您自己的实现的类}}。这种技术称为deferred-binding。情况并非如此,因为<replace-with>
通常是使用.gwt.xml
创建的。
最后&lt; super-source&gt; tag可用于在编译时覆盖任何类实现。虽然JSONObject
旨在通过new
实现覆盖super-source
类,但将gwt替换为其他gwt实现仍可正常工作。在这种情况下,您必须将具有相同命名空间结构的已修改类放在jre
标记指向的文件夹中。