РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1285 of 1310 menu

Аннотация JvmStatic

Аннотация @JvmStatic применяется к функциям и свойствам внутри объектов object и компаньонов companion object для генерации статических методов в байт-коде JVM. Это позволяет вызывать эти методы из Java-кода как статические методы класса, а не через экземпляр объекта.

Импорт

import kotlin.jvm.JvmStatic

Синтаксис

@JvmStatic fun methodName(): ReturnType
@JvmStatic val propertyName: Type

Пример

Создадим объект с функцией, помеченной аннотацией @JvmStatic:

object StringUtils { @JvmStatic fun capitalize(str: String): String { return str.uppercase() } }

В Java такой метод можно вызвать статически:

String result = StringUtils.capitalize("hello")

Пример

Использование @JvmStatic в компаньон-объекте:

class Calculator { companion object { @JvmStatic fun add(a: Int, b: Int): Int { return a + b } } }

В Java можно вызвать статически:

int sum = Calculator.add(5, 3)

Пример

Аннотация @JvmStatic для свойства:

object Config { @JvmStatic val version: String = "1.0.0" }

В Java можно обратиться к свойству статически:

String version = Config.getVersion()

Пример

Без аннотации @JvmStatic вызов из Java требует обращения через экземпляр:

object MathOperations { fun multiply(a: Int, b: Int): Int { return a * b } }

В Java вызов будет через INSTANCE:

int result = MathOperations.INSTANCE.multiply(4, 5)

Смотрите также

  • ключевое слово object,
    которое создает объекты-одиночки
  • ключевое слово companion,
    которое создает компаньон-объекты
  • аннотацию @JvmField,
    которая делает поля доступными как публичные поля в Java
  • ключевое слово static,
    которое создает статические члены класса в Java
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить