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