Анонимная инициализация - странное предупреждение о сериализации

Мне было интересно, почему, когда я использую анонимный экземпляр по w С блоком инициализатора экземпляра я получаю предупреждение во время компиляции «сериализуемый класс не объявляет статическое конечное поле serialVersionUID типа long».

Вот что я имею в виду. Допустим, я хочу создать экземпляр ArrayList и в то же время добавить к нему что-то вроде этого:

ArrayList<Object> arrayList = new ArrayList<Object>(){{add(new Object());}}; 

Если я скомпилирую это, все в порядке, но я получаю предупреждение об отсутствии поля serialVersionUID. Теперь ArrayList уже реализует сериализуемый и имеет частный статический final long serialVersionUID , так почему, когда я использую его таким образом, кажется, что это поле «исчезает», и я получаю предупреждение о том, что оно не объявлено?

5
задан Shivan Dragon 25 October 2011 в 19:31
поделиться