Мне было интересно, почему, когда я использую анонимный экземпляр вместе с блоком инициализатора экземпляра, я получаю «сериализуемый класс не объявляет статическое окончательное поле serialVersionUID типа long» предупреждение во время компиляции.
Вотчто я имею в виду.Допустим, я хочу создать экземпляр ArrayList и одновременно добавить к нему что-то вроде этого:
ArrayList<Object> arrayList = new ArrayList<Object>(){{add(new Object());}};
Если я скомпилирую все, все в порядке, но я получаю предупреждение о пропущенном поле serialVersionUID.Теперь ArrayList уже реализует сериализуемый и имеет private static final long serialVersionUID
, так почему, когда я так его использую, кажется, что это поле «исчезает», и я получаю предупреждение, что оно не объявлено?