Android studio конвертирует в Kotlin: используйте @JvmStatic в некоторых случаях

Я довольно интенсивно использую Kotlin для Android. Это снова заставляет программировать веселиться. Тем не менее, в некоторых случаях (в основном, используются классы, где имя должно быть коротким и удобным), при автоматической конвертации Java в Kotlin мне бы хотелось иметь возможность использовать @JvmStatic для статических методов, а не для преобразования вызывающих абонентов в MyClass.Companion.Bar ,

То есть, в некоторых конкретных случаях было бы неплохо иметь

 public static foo(Barian bar) 

конвертировано в

 @JvmStatic fun foo(bar:Barian) 

поэтому я могу поддерживать синтаксис коротких вызовов от Java:

 MyClass.foo(bar) 

скорее, чем

 MyClass.Companion.foo(bar) 

Очевидно, что в большинстве случаев я согласен, что это плохой подход по многим причинам, таким как будущая совместимость, не-котлинский дух и многие другие, но в некоторых случаях он может сохранить код Java (который использует мои классы) короче.

Вам не нужно явно указывать пространство имен Companion, когда вы декалируете свой «статический» метод следующим образом:

 class MyClass { companion object { fun foo() {} } } 

В этом случае вы все равно можете позвонить через:

 MyClass.foo() 

Но тем не менее наличие статических методов не является котиновским идиоматическим способом, и его следует избегать, используя другие возможности этого языка.