Проблема с сериализацией Sonarqube, когда пользователи имеют тип java.util.List - PullRequest
0 голосов
/ 01 января 2019

Я определил сериализуемый класс, и в нем есть члены типа java.util.List.В сонаре он показывает ошибку, поскольку «Поля в« сериализуемом »классе должны быть либо временными, либо сериализуемыми»

Но фактической реализацией этих членов являются ArrayLists, которые сериализуемы.

public class TestDataClass implements Serializable {
    List<String> listMember = new ArrayList();
}

1 Ответ

0 голосов
/ 01 января 2019

Обязательно пометьте поля Collection как private в соответствии с RSPEC-1948 :

Это правило вызывает проблему принепериализуемые поля и поля коллекции, когда они не являются частными (потому что им можно присваивать непериализуемые значения извне) и когда им присваиваются непериализуемые типы в классе.

и укажите тип вместо использования необработанного типа ArrayList, например:

private List<String> listMember = new ArrayList<>(); // notice '<>' for 'ArrayList<String>'
...