> Есть ли аннотации для улучшения интеропа Kotlin и Java, например JVMStatic (Kotlin, Java, Android)
Уровень: senior · Роль: mobile · Категория: Технические вопросы
Компании: Яндекс
Стек: Kotlin, Java, Android
> Пример ответа
Да, в Kotlin есть несколько аннотаций для улучшения интероперабельности с Java. Основные из них:
@JvmStatic- применяется к методам и полям в объектах-компаньонах или именованных объектах, чтобы они компилировались как статические члены Java. Без неё метод будет доступен черезCompanion.method().@JvmField- делает свойство Kotlin доступным как поле Java (без геттеров/сеттеров). Полезно для констант или полей, которые должны напрямую использоваться в Java-коде.@JvmOverloads- генерирует перегрузки функций с параметрами по умолчанию. Без неё Java-вызов требует указания всех аргументов.@Throws- указывает, что функция может выбрасывать проверяемое исключение (checked exception), что необходимо для Java-совместимости.@JvmName- задаёт другое имя для функции или свойства при компиляции в байт-код, чтобы избежать конфликтов имён (например, при перегрузке с разными типами).@JvmMultifileClass- позволяет объединять функции из нескольких файлов в один класс для Java.
Пример использования:
class Utils { companion object { @JvmStatic fun create(): Utils = Utils() @JvmField val TAG = "Utils" @JvmOverloads fun greet(name: String = "World"): String = "Hello, $name" } }
В Java это будет выглядеть как Utils.create(), Utils.TAG, Utils.greet("User").
> Похожие задачи по mobile
Каким ключевым словом обозначаются параметры конструктора в data class Kotlin, если они используются только в init блоке
Уровень: middleКатегория: Технические вопросы
Компания: Dogma
Стек: Kotlin, Android
Почему нельзя создать экземпляр класса Nothing в Kotlin
Уровень: seniorКатегория: Технические вопросы
Компания: Dogma
Стек: Kotlin, Android
Что делают функции all и any в Kotlin и как их использовать для проверки условий
Уровень: seniorКатегория: Технические вопросы
Компания: Ozon
Стек: Kotlin, Android
Что такое Coroutine Builders в Kotlin
Уровень: juniorКатегория: Технические вопросы
Компания: PayMe
Стек: Kotlin, Android
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью