Хотя я в настоящее время не планирую сериализовать что-либо, я предоставляю все сериализуемые внешние классы, а также статические вложенные классы SerialVersionUID
, потому что это правильный способ сделать это.Java: Должны ли сериализуемые внутренние и анонимные классы иметь SerialVersionUID?
Однако, я прочитал, что here
Сериализация внутренних классов (то есть, вложенных классов, которые не являются статическими классами членов), включая местные и анонимные классы, настоятельно не рекомендуется по нескольким причинам. ...
Так что мой вопрос:
Должен ли я дать внутренние и анонимные классы в SerialVersionUID
каждый, или я должен добавить @SuppressWarnings("serial")
тем?
Один из способов более правильный, чем другой?
Я в любом случае сделаю ссылки на такие классы переходными, потому что я не хочу, чтобы они были сериализованы.
Я думаю, что советы о том, что вы не должны сериализовать тезисы классов, обескуражены, потому что вы не знаете, что JVM, десериализующий объекты, имеет классы в пути к классам. – keuleJ
Итак, я должен рассматривать их как другие сериализуемые классы? –
Я бы использовал только serialVersionUID, если вам нужна совместимость между версиями. например. если вы пишете объекты в файле или аналогичные. – keuleJ