В Kotlin нет ключевого слова static. Вместо этого существует два рекомендуемых подхода в зависимости от твоего случая использования.
Companion object используется, когда функция тесно связана с классом. Он объявляется внутри класса и доступен через имя класса:
class MyClass {
companion object {
fun create(): MyClass = MyClass()
}
}
MyClass.create()
Для совместимости с Java добавь аннотацию @JvmStatic к функции, чтобы она воспринималась как настоящий статический метод JVM:
@JvmStatic
fun create(): MyClass = MyClass()
Функция верхнего уровня — это функция, определённая прямо в файле, вне любого класса. Это предпочтительный подход для утилит или вспомогательных функций, которые не привязаны к конкретному классу:
// StringUtils.kt
fun formatName(name: String): String = name.trim()
Её можно импортировать и использовать напрямую:
import com.example.formatName
formatName(" Kotlin ")
@JvmStatic к членам companion object, когда требуется совместимость с JavaЧлены companion object в Kotlin автоматически обрабатываются JVM как истинные статические методы без необходимости в дополнительных аннотациях.
Новый — ещё не проверен сообществом
Вы