Каково значение класса java.io.Serializable?

В терминах "Layman" мне было интересно, может ли кто-нибудь объяснить мне важность и общую важность импорта класса Serializable для реализации интерфейса java.io.Serializable. спросил у студента java

Ответы

Ответ 1

java.io.Serializable - это то, что известно как "интерфейс маркера". Сам интерфейс не имеет методов, определенных в нем. Поэтому любой класс может легко реализовать этот интерфейс, просто выполнив его:

 public class MyClass implements Serializable {
       public void aMethodForMyClass() { }

       // not implementing any specific java.io.Serializable methods because
       // the interface has no methods to implement.
 }

Это "маркерный" интерфейс, потому что, реализуя этот интерфейс, вы говорите Java-сериализатору, что это нормально для сериализации объектов этого типа. Если ваш класс не реализует этот интерфейс, сериализатор откажется сериализовать любые объекты этого типа.

Ответ 2

Все, что вам нужно знать о Java Serialization, можно найти в Java Serialization Specification

Часто задаваемые вопросы о сериализации Java также содержит ответ на ваш вопрос.

В частности, первый вопрос кажется таким же, как вы спрашиваете:

Почему классы должны быть помечены сериализуемыми для записи в ObjectOutputStream?

Я надеюсь, что это поможет!