Что такое Platform Type

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

Ответ

Platform Type в Kotlin — это тип, который может быть как nullable, так и non-null, и его nullability неизвестна на этапе компиляции. Он возникает при взаимодействии с Java-кодом, где аннотации @Nullable/@NonNull отсутствуют. Обозначается T! (например, String!).

Пример:

// Java-метод
public String getUserName() { ... }

// Kotlin вызов
val name: String? = getUserName() // явно nullable
val name2: String = getUserName() // non-null (риск NPE)

Важно:

  • Без явного указания типа (String?/String) компилятор предупредит о неоднозначности.
  • Всегда аннотируйте Java-код (@Nullable/@NonNull), чтобы избежать Platform Type.