0

GWT の json ではなく、 gwt-project com.google.gwt.json.clientパッケージで json 実装を機能させる方法を見つける必要がありますcom.google.gwt.json package

私のGWTプロジェクトでは、自分で作成し、GWT jsonパッケージと同じパスを持つプロジェクトのパッケージに保存したjson実装を使用したいと考えています。

このパッケージ内のファイルはcom.google.gwt.json.client自分で実装し、プロジェクト内の同じパッケージに保持します。元のパッケージの代わりにこれらのパッケージを使用するようにプロジェクトで構成する方法。

これに関する提案は大歓迎です。

ありがとうございます..

更新:私が探しているものをより明確にするために:GWTでJSONUtilsを使用して解析しているときに、パーサーが私のプロジェクトcom.google.gwt.jsonパッケージに記述されたJSONObjectを使用するようにし、パッケージ内のGWT-jsonを挿入しcom.google.gwt.jsonます。

4

1 に答える 1

2

問題を修正する必要があるか、新しい機能を追加する必要があるため、特定の GWT コア クラスを変更する必要がある場合があります。

たとえばcom.google.gwt.json.client.JSONObject、GWT 実装クラスをオーバーライドするには、src フォルダー内のそのクラスを同じパスでコピーして変更するだけsrc/main/java/com/google/gwt/json/client/JSONObject.javaです src/com/google/gwt/json/client/JSONObject.java

必要な唯一の注意は、srcフォルダーが gwt sdk よりもクラスパスの最初にあることです。maven では、デフォルトでそうです。gwt のバージョンを更新する場合、おそらく実装を更新する必要があることにも注意してください。

オーバーライドしようとしていたクラスのインスタンスがGWT.create()呼び出しを使用して GWT で作成されている場合、クラスを独自の実装に置き換えることができ<replace-with>ます.gwt.xml。この手法はdeferred-bindingと呼ばれます。JSONObjectは通常 で作成されるため、これは当てはまりませんnew

最後に、 < super-source > タグを使用して、コンパイル時にクラスの実装をオーバーライドできます。実装によってクラスsuper-sourceをオーバーライドするように設計されていますが、gwt を他の gwt 実装に置き換えることは機能します。この場合、変更したクラスを同じ名前空間構造で、タグが指すフォルダーに配置する必要があります。jregwtsuper-source

于 2013-04-17T10:14:26.913 に答える