2017-01-11 8 views
3

私はJavaプロジェクトを持っていますが、このコードをGWTプロジェクトに使用したいので、同じコードを2回書く必要はありません。問題は、gwtで利用できないクラスがいくつかあることです。例えば、java.awt.geom.Rectangle2D.Doubleです。異なる基底クラスを継承するクラスラッパー

標準のRectangleクラスまたは同じクラスのgwtバージョンを拡張する、RectangleWrapperというラッパークラスを作成しようと考えていました。共有コードで

私はすべての私の私のRectangleと、最終的なブールの私のラッパークラス(compiler flags java)を依存して上延長するいずれか、または他のRectangleクラスとRectangle2D.Double

が、このことも可能であるか、またはそこに置き換えます私はちょうど私のGWTプロジェクトのクライアント側のクラスの一つを取って、次の行を追加

答えて

1

これを行うには良い方法:?

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の主な機能の1つは、古いAWT/SwingデスクトップGUIコンポーネントを、Javascriptとの互換性のために設計された一連のWeb GUIコンポーネントで置き換えることです。古いコンポーネントを利用可能にしたり、サポートしたりすることに意味がありません。

Apache Commonsのようなユーティリティライブラリについて話していたら、代わりにRPC呼び出しを行うようにアドバイスできます(好きなものを使用し、結果を非同期で返すクライアント側の呼び出し側)。そうではありません。

関連する問題