Что такое дженерики

«Что такое дженерики» — вопрос из категории Java, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Дженерики (Generics) в Kotlin/Java позволяют создавать обобщённые классы, интерфейсы и функции, работающие с разными типами данных без потери типобезопасности. Они устраняют необходимость приведения типов и уменьшают риск ClassCastException.

class Box<T>(val item: T) // Обобщённый класс

fun <T> printItem(item: T) { // Обобщённая функция
    println(item)
}

val intBox = Box(42) // Box<Int>
val stringBox = Box("Hello") // Box<String>

Особенности:

  • Позволяют писать гибкий и переиспользуемый код
  • Обеспечивают проверку типов на этапе компиляции
  • Можно ограничивать типы (например, T : Number)