Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад

Для чего используется аннотация @JvmStatic в Kotlin?

Этот вопрос проверяет понимание, как аннотация @JvmStatic упрощает взаимодействие между Kotlin и Java кодом.

Короткий ответ

Аннотация @JvmStatic делает методы или свойства компаньон-объектов статическими в байткоде, чтобы Java-код мог вызывать их как статические методы или поля. Это улучшает совместимость между Kotlin и Java.

Длинный ответ

Зачем нужен @JvmStatic:

- В Kotlin методы компаньон-объектов вызываются как обычные методы.

- В Java для вызова таких методов нужно обращаться через объект-компаньон.

- @JvmStatic устраняет необходимость явного обращения к объекту-компаньону.

 

Пример использования:

class Utils {
    companion object {
        @JvmStatic
        fun doSomething() {
            println("Doing something")
        }
    }
}

 

В Java:

public class Main {
    public static void main(String[] args) {
        Utils.doSomething(); // Вывод: Doing something
    }
}

 

Что делает @JvmStatic:

- Генерирует статический метод в байткоде.

- Позволяет вызывать метод из Java-кода напрямую, как обычный статический метод.

 

Пример без @JvmStatic:

public class Main {
    public static void main(String[] args) {
        Utils.Companion.doSomething(); // Без аннотации
    }
}

Ограничения:

- Применяется только к компаньон-объектам или объектам в Kotlin.

- Не влияет на Kotlin-код, который продолжает работать как обычно.


@JvmStatic улучшает интеграцию между Kotlin и Java, упрощая вызовы методов компаньон-объектов в Java-коде. Используйте его, если метод предполагается использовать в смешанных проектах.

  • Аватар

    Android Guru

    Anton Gulyaev

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    2

  • Сложность:

    8

Навыки

  • Java

  • Kotlin

Ключевые слова

#jvmstatic

#java interoperability

#companion object

#static method

Подпишись на Android Developer в телеграм

  • Аватар

    Android Guru

    Anton Gulyaev

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.