Маркерные интерфейсы (Marker Interfaces) в Android — это интерфейсы без методов, используемые для обозначения класса, предоставляя компилятору или среде выполнения информацию о типе объекта.
Перечислите маркеры и интерфейсы в Android-разработке.
Маркерные интерфейсы (Marker Interfaces) в Android — это интерфейсы без методов, используемые для обозначения класса, предоставляя компилятору или среде выполнения информацию о типе объекта.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Маркерные интерфейсы (Marker Interfaces) в Android — это интерфейсы без методов, используемые для обозначения класса, предоставляя компилятору или среде выполнения информацию о типе объекта.
Примеры:
Serializable: Указывает, что объект может быть сериализован (сохранен в поток байтов) для последующей десериализации. Используется для передачи данных между компонентами, сохранения состояния.Parcelable: Более эффективный для Android аналогSerializable. Позволяет объектам "упаковываться" вParcelдля быстрой передачи. Требует реализации методовwriteToParcelи созданияCREATOR. Используется для передачи данных междуActivity,Service,BroadcastReceiver.Cloneable: Указывает, что объект может быть клонирован методомObject.clone().
Интерфейсы в Android используются для определения контрактов, обеспечения полиморфизма и обратных вызовов.
Примеры:
-
Listeners (слушатели событий):
// Пример слушателя клика View.OnClickListener -
Callbacks (обратные вызовы):
// Пример обратного вызова для результата запроса retrofit2.Callback -
Adapters (адаптеры):
// Пример адаптера для списка androidx.recyclerview.widget.RecyclerView.Adapter -
Lifecycle Observers (наблюдатели жизненного цикла):
// Пример наблюдателя жизненного цикла androidx.lifecycle.LifecycleObserver -
Runnable: Используется для определения кода, который выполняется в отдельном потоке.
java.lang.Runnable -
Comparable/Comparator: Для определения порядка сортировки объектов.
java.lang.Comparable java.util.Comparator -
ServiceConnection: Для взаимодействия с привязанной службой.android.content.ServiceConnection -
Binder: Базовый класс для реализации удаленных вызовов процедур (IPC).android.os.Binder