Иногда полезно определить пустой интерфейс. Класс может реализовать этот интерфейс, указав его в секции implements. При этом нет необходимости реализовывать методы. Любой экземпляр класса становится экземпляром интерфейса. С помощью оператора instanceof Javaкод может проверить, является ли объект экземпляром интерфейса. Таким образом, эта техника полезна для предоставления дополнительной информации об объекте. Интерфейс Cloneable из пакета java.lang является примером интерфейса-маркера (marker interface). Он не определяет методов, но идентифицирует класс, внутреннее состояние которого можно клонировать методом clone() класса Object.
Пусть дан произвольный объект. Наличие у него работающего метода clone() можно определить с помощью следующего кода:
int
[] aint = new int[10];int[] bint;
if (aint instanceof Cloneable) bint = aint.clone();
else bint = null;
Еще одним примером интерфейса-маркера является интерфейс java.io.Serializable.
Комментариев нет:
Отправить комментарий