2011-08-03 16 views
1

クラス/オブジェクトが正当なシリアル化可能オブジェクト(シリアライズ可能で、すべてのフィールドがシリアライズ可能)であるかどうかを教えてくれるツールを探しています。 私はオブジェクトが実行時にのみ直列化可能かどうかを知ることができます。 コンパイル時に、クラスが直列化できないかどうか(例えば、実行時にはnullでもserizableなサブクラス型でも、メンバーは直列化できませんかどうか)を知りたいです。さらに、実行時に、クラスが本当にシリアライズ可能かどうかをチェックしてから、シリアライズされたオブジェクトとしてネットワーク上に送信しようとします。シリアライゼーションチェック - 時間とランタイムをコンパイルする

ありがとう...

答えて

1

これは、通常、スタティックコード分析を使用して行われます。

多く使用されているツールの1つはFindbugsです。それは多くの一般的な問題と疑わしい行動について教えてくれるでしょう。そのチェックの1つは、あなたが言及したものです(described here)

これにはほとんどのIDE用のプラグインがあるため、作業中にその作業を行うことができます。一般的なパターンは自動ビルドにこれを含めることです。

4

コンパイル時にする必要がありますか?これまでは単体テストでこれを行ってきましたが、これは開発ライフサイクルの面でコンパイル時間にかなり近いものです。 This articleはちょっと古いですが、いくつかの良いアプローチの概要を示しています。また、2つのWebサーバーを使用してWebアプリケーションの真のフェールオーバーテストを行うことで、直列化可能性を検証する必要があったため、直列化不可能な状態が発生しました。

+0

あなたは「この記事」へのリンクを忘れました – AlexR

+0

@AlexR - 投稿後約15秒で修正されました。あなたは速いです! – jkraybill

関連する問題