Пользовательский интерфейс маркера в Java
Поскольку Serializable и Cloneable - это маркерный интерфейс (интерфейс, у которого нет никакого метода), поэтому, если мы создадим наш собственный маркерный интерфейс, то в чем будет разница между этими двумя.
1 ответ
Serializable
а также Cloneable
являются стандартными интерфейсами. Они оба принадлежат к "защищенным" пакетам (что означает, что вы не можете добавлять к ним классы - вы можете, но это не то, что вы делаете каждый день).
java.io.Serializable
java.lang.Cloneable
Они распознаются JVM во время выполнения.
Например, позвонив clone()
на объекте, который не реализует Cloneable
бросит
java.lang.CloneNotSupportedException
Возможно, вы захотите использовать маркерные интерфейсы для пользовательских проверок во время выполнения или даже для обработки во время компиляции. Однако рекомендуется использовать аннотации.