В Java интерфейсы Collection не распространяют Serializable по нескольким веским причинам. Кроме того, большинство распространенных реализаций этих интерфейсов реализуют Serializable.Java: как обеспечить сериализуемые коллекции
Таким образом, объекты, реализующие один из интерфейсов Collection, могут быть сериализованы, если сама реализация сериализуема (как правило, это так) и, если объекты в коллекции являются сериализуемыми.
Но как я могу обеспечить выполнение этих двух условий? Я не хочу сталкиваться с ошибкой во время выполнения, поскольку компилятор может проверить эти условия. Я думал о каком-то очевидном интерфейсе типа (витрина для списка-интерфейса):
public interface SerializableList<T extends Serializable> extends Serializable, List<T> {}
мне интересно, если никто не сталкивается с этой проблемой и пришел с этим простым решением. До сих пор я не мог найти никакого решения или даже дискуссии по этому поводу, что заставляет меня сомневаться в моей идее.
Вы можете сделать ссылку 'List' как -' List ', если я правильно понял ваш вопрос. Вам не нужно развертывать собственный интерфейс. –
Компилятор не может проверить это. Каждый класс, реализующий Serializable, может содержать непереходное, несериализуемое поле, что приведет к исключению во время выполнения. И ArrayList
@RohitJain: Ваше предложение гарантирует только то, что объекты в списке сериализуемы, но не сама реализация List. – MrD