2009-07-01 5 views
4

GWTモジュールに含めるクラスがあります。残念ながら、それはGWTによってサポートされていない機能を持っています(興味がある場合はClass.isInstanceを使います)。 GWTアプリケーションではこのメソッドを使用しませんが、GWT以外のアプリケーションではこのメソッドを使用するため、単純に削除できません。モジュール定義でこのメソッドを除外する方法はありますか?おそらくメソッドの注釈がこれを行うことができますか?GWTモジュールからメソッドを除外する

答えて

3

これを可能にするGWTコンパイラの機能はありません。それはGWTフォーラムで詳細に議論されてきましたが、いくつかの理由でそれを実装しないことに決めました。

GWTでコンパイルされないオブジェクトの代わりに使用する転送オブジェクトを作成するのは、そのメソッドを削除するオブジェクトを変更できないためです。

+0

ええ、これがそうであるようです。私はこの転送オブジェクトの作成を終了しました。迅速な対応に感謝します。 – P4ndaman

+0

GWTがどのようにしてライブラリクラスの関数のサブセットをサポートすることができるのか、面白いですが、ユーザは独自のクラスに対してこれを行うことはできません。 – P4ndaman

0

スーパーソースを使用することもできます。クラスの複製を作成することができます。そのようなクラスは、除外したいメソッドを除いた正確なコピーになります。次に、super-sourceディレクティブを追加してその重複クラスを組み込みます。

これの欠点は、自分を繰り返さない(DRY)という原則に違反するということです。また、ホストされたモードでは、スーパーソースではなく実際のクラスが呼び出されることに気づくことが重要です。

関連する問題