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