Общие аргументы для сериализуемых коллекций - PullRequest
3 голосов
/ 19 декабря 2011

У меня есть такой член в сериализуемом классе:

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

класс имеет следующие границы типов.

<T extends Serializable>

Я использую findbugs для проверки ошибок в моем коде, и он показывает, что этот член "не (гарантированно) сериализуемым".

1 Ответ

7 голосов
/ 19 декабря 2011

Поскольку ваш сериализуемый класс содержит следующий член

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

здесь T может быть любым классом Foo, который не может быть сериализуемым, поэтому предупреждение / предложение / средство для открытия глаз

Если вы ожидаете, что он будет сериализуем во всех случаях, тогда сделайте это

List<? extends Serializable>

и если вы вообще не хотите отделять это поле просто отметьте transient

...