public class Contact implements Serializable {
private String name;
private String email;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
- Когда я должен реализовать
Serializable
интерфейс? - Зачем мы это делаем?
- Это дает какие-то преимущества или безопасность?
java
serialization
theJava
источник
источник
Ответы:
От Что такое «сериализация» , что все это значит ? :
Итак, реализуйте
Serializable
интерфейс, когда вам нужно сохранить копию объекта, отправить его другому процессу, который выполняется в той же системе или по сети.Потому что вы хотите сохранить или отправить объект.
Это облегчает хранение и отправку объектов. Это не имеет ничего общего с безопасностью.
источник
Реализуйте
Serializable
интерфейс, когда вы хотите иметь возможность преобразовать экземпляр класса в серию байтов или когда вы думаете, чтоSerializable
объект может ссылаться на экземпляр вашего класса.Serializable
классы полезны, когда вы хотите сохранить их экземпляры или отправить их по проводам.Экземпляры
Serializable
классов могут быть легко переданы. Однако сериализация имеет некоторые последствия для безопасности. Прочитайте « Эффективная Java» Джошуа Блоха .источник
Ответ на этот вопрос, возможно, удивительно, никогда , или более реалистично, только когда вы вынуждены взаимодействовать с унаследованным кодом . Это рекомендация в Effective Java, 3-е издание Джошуа Блоха:
По словам главного архитектора Oracle Марка Рейнхольда, устранение существующего механизма сериализации Java является долгосрочной целью.
Почему Java-сериализация имеет недостатки
Java как часть языка предоставляет схему сериализации, в которую вы можете включить использование
Serializable
интерфейса. Эта схема, однако, имеет несколько неразрешимых недостатков и должна рассматриваться разработчиками языка Java как неудачный эксперимент.Что делать вместо
Вместо этого используйте схему сериализации, которую вы можете явно контролировать. Например, протокол буфера, JSON, XML или ваша собственная схема.
источник