Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Задачи

Войти

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

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

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Java: jvmstatic, java interoperability, companion object, static method

Для чего используется аннотация @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

    Java

  • Kotlin

    Kotlin

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

#jvmstatic

#java interoperability

#companion object

#static method

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

  • Аватар

    Android Guru

    Anton Gulyaev

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