2011-12-15 5 views
1

:すべての場合GWT Serializableオブジェクトにデフォルトのコンストラクタを作成するのを忘れたとき、Eclipseに警告を出すにはどうしたらいいですか?私はGWTで遊んでてきた、と私はGWTシリアライズ可能なオブジェクトのためのルールを満たしていないクラスを作成するの悪い癖を持っているように見える

ユーザー定義クラスは直列化可能です適用される次の:

  • すべての非ファイナル、非一時的なインスタンスフィールドをそれはIsSerializableに割り当てまたは直列化され、いずれかでそれが直接、これらのインタフェースのいずれかを実装しているためか、それが
  • を行い、スーパークラスから を導出しているためですそれ自体はシリアライズ可能であり、
  • GWT 1.5では、デフォルトの(ゼロ引数)コンストラクタ(アクセス修飾子付き)またはコンストラクタをまったく持たない必要があります。

通常、デフォルトのコンストラクタを含めるのは忘れてしまいます。私は通常、実行時にシリアライゼーション例外が発生したときにこれについて調べています。これは私を不必要なものとして襲う。確かに、Eclipse(またはGoogle Plugin)がGWTコードを静的に解析してコンパイル時にこの問題を発見する方法はありますか?どこかで少し赤い球が見えるのは、ランタイムの例外を得ることよりも無限に良いです。

私は欲望の増加順に、次のような解決策を期待しています:私は警告/検証

  • のこの種を有効にするには、EclipseやGoogleプラグインで設定することができます

    • Configオプションをこのプラグインをインストールすることができます。
    • ジョブを完了させるための既存の方法。
    • これを自分で行うためにGoogle Pluginを変更する方法についてのヒント。
  • +0

    パラメータ化されたコンストラクタを作成しますが、空の空のインスタンスを作成することは忘れてしまいますか?私はあなたを助けるプラグインを見ていない。クラスがSerializableを実装していても、コンパイルの問題ではありません。 – Vladimir

    +0

    @Vladimir、あなたはコードがコンパイルされるという点で正しいです。しかし、コードが実際にコンパイルされるかどうかに関係なく、実行できる静的解析はたくさんあります。 findbugs、checkstyleなどのツールはすべてコンパイル時にランタイムバグを特定するのに役立ちます。 「クラスがIsSerializeableインターフェイスを実装していますが、デフォルトのコンストラクタはありません」というシナリオを検出するためのツールを書くことができると期待するのは非常に合理的です。(私は通常、 GWTはアクセス修飾子に気を付けません) –

    答えて

    1

    正確な答えはわかりませんが、checkstyleがそれを実行できるかどうかを確認しようとします。これはbuild(ant/maven)から呼び出すことができ、Eclipseプラグインもあります。このようなデフォルトのチェックがない場合は、合理的に簡単に追加できると思います。

    関連する問題