0

私の gwt アプリケーションでは、誰かが java.beans.PropertyChangeSupport を使用するモジュールを開発しました。最近、私はそのモジュールの使用を開始し、実行時にThe import java.beans cannot be resolve エラーを取得しました。しかし、アプリケーションはうまく動作します。gwt dev モード ウィンドウでコンパイラ エラーが発生するのはなぜですか? 何か案は?

00:17:33.079  [ERROR] Errors in 'file:/D:/workspace/App/src/main/java/com/abc/def/client/extract/pojos/ClientData.java'
00:17:33.079  [ERROR] Line 3: The import java.beans cannot be resolved
00:17:33.079  [ERROR] Line 4: The import java.beans cannot be resolved
00:17:33.079  [ERROR] Line 11: PropertyChangeSupport cannot be resolved to a type
00:17:33.079  [ERROR] Line 14: PropertyChangeSupport cannot be resolved to a type
00:17:33.079  [ERROR] Line 14: PropertyChangeSupport cannot be resolved to a type
00:17:33.079  [ERROR] Line 17: PropertyChangeListener cannot be resolved to a type
00:17:33.079  [ERROR] Line 18: PropertyChangeSupport cannot be resolved to a type
00:17:33.079  [ERROR] Line 21: PropertyChangeListener cannot be resolved to a type
00:17:33.079  [ERROR] Line 22: PropertyChangeSupport cannot be resolved to a type
00:17:33.079  [ERROR] Line 25: PropertyChangeListener cannot be resolved to a type
00:17:33.079  [ERROR] Line 26: PropertyChangeSupport cannot be resolved to a type
00:17:33.079  [ERROR] Line 30: PropertyChangeListener cannot be resolved to a type
00:17:33.079  [ERROR] Line 31: PropertyChangeSupport cannot be resolved to a type
00:17:33.079  [ERROR] Line 36: PropertyChangeListener cannot be resolved to a type
00:17:33.079  [ERROR] Line 36: PropertyChangeSupport cannot be resolved to a type
4

2 に答える 2

2

GWTは、JRE タイプのサブセットのみを実装します。DevMode が機能する理由は、Java ソースをシステムの JRE タイプに対してコンパイルして、実行時のパフォーマンスを向上させるためです。プロダクション モード コンパイルを実行すると、gwt-user.jaratのファイルが使用されcom/google/gwt/emul/java/...ます。

汎用リフレクションは、デッドコード ストリッピングやモノリシック最適化の多くの形式と互換性がないため、GWT コンパイラはランタイム リフレクションを実装していません。GWT Generator システムは、コンパイル時にモジュールの型システム全体にアクセスできるため、ニーズに合わせて十分な「静的」リフレクションを実装できます。

「状態のバッグ」に基づいてシステムを構築している場合は、ビジター パターンによる軽量のプロパティ リフレクションを提供するAutoBeansフレームワークを検討することをお勧めします。

于 2011-02-09T13:34:59.957 に答える
2

BobVによって言及された AutoBeans は GWT の優れた新機能ですが、それらを使用するには既存のコードのリファクタリングが必要になります。アプリケーションで既に を使用している場合PropertyChangeSupportgwtxjava.beans.PropertyChange*プロジェクトはクラスの GWT エミュレーションを提供します。

于 2011-02-17T20:59:40.593 に答える