2011-12-19 11 views
2

私は直列化可能クラスでは、このようなメンバーを持っている:ジェネリック引数は

private final Map<String, List<T>> categoryMap = Maps.newHashMap(); 

クラスには、次のタイプの境界を持っています。

<T extends Serializable> 

は、私は私のコードでミスをチェックするにFindBugsを使用し、それが「(あることが保証さ)、シリアライズ可能ではない」と私にそのメンバーを示します。

+0

'Maps.newHashMap()とは何ですか? – EJP

+0

美しいグアバライブラリのユーティリティ関数:http://code.google.com/p/guava-libraries/ –

答えて

7

あなたのシリアライズ可能なクラスは、次のメンバー

private final Map<String, List<T>> categoryMap 

ここTがあなたの場合は直列化可能であることを保証し、その警告/提案/アイ・オープナー

されていない任意のクラスFoo、することができ含まれているためそれを作るよりもすべてのケースでシリアライザブルであることを期待しています

List<? extends Serializable> 

そのフィールドを全くセラー化したくない単純にマークtransient

+0

ねえ、私は、がメンバを含むクラスの型境界としてあることを忘れていました。それで十分ではないですか? –

+1

それは<!-----------------> –

+0

Findbugsはまだそれをエラーとしてリストしています! –

関連する問題