可序列化集合的通用参数

Fab*_*ndl 3 java generics collections serialization

我在一个可序列化的类中有这样的成员:

private final Map<String, List<T>> categoryMap = Maps.newHashMap();
Run Code Online (Sandbox Code Playgroud)

该类具有以下类型边界.

<T extends Serializable>
Run Code Online (Sandbox Code Playgroud)

我使用findbugs检查我的代码中的错误,它向我显示该成员为"not(保证是可序列化的)".

Jig*_*shi 7

因为您的可序列化类包含以下成员

private final Map<String, List<T>> categoryMap
Run Code Online (Sandbox Code Playgroud)

这里T可以是任何类Foo,不保证是Serializable,所以警告/建议/开眼界

如果您希望它在所有情况下都可以序列化而不是制作它

List<? extends Serializable>
Run Code Online (Sandbox Code Playgroud)

如果你不想简单地标记该字段transient