Sobes.tech
Back to questions
Senior
5

Что такое маркерный интерфейс? Зачем нужен?

Companies where asked
Т-БанкТ-Банк

Answer from AI

sobes.tech AI

Маркерный интерфейс — это интерфейс без методов, который служит для маркировки или идентификации класса как обладающего определённым свойством.

Пример в Java — интерфейс Serializable. Класс, реализующий этот интерфейс, сигнализирует JVM и другим инструментам, что его объекты можно сериализовать.

Зачем нужен маркерный интерфейс:

  • Позволяет использовать instanceof для проверки принадлежности объекта к определённой категории.
  • Используется в API и фреймворках для включения или отключения определённого поведения без добавления методов.
  • Обеспечивает типовую безопасность и ясность кода.

Пример:

public interface MyMarker {}

public class MyClass implements MyMarker {
    // класс ничего не обязан реализовывать
}

// где-то в коде
if (obj instanceof MyMarker) {
    // выполнить особую логику
}

Таким образом, маркерный интерфейс — это простой способ пометить класс для последующей обработки.