Котлин в стандарте генерирует что-то вроде этого
@JvmStatic
fun newInstance(param1: String, param2: String) =
MyFragment().apply {
arguments = Bundle().apply {
putString(ARG_PARAM1, param1)
putString(ARG_PARAM2, param2)
}
}
Что делают @JvmStatic?
Мы можем сделать что-то вроде:
fun getInstance() = MyFragment()
и эта функция делает то же самое (кроме параметров)
Итак, @JvmStatic бесполезен?




Для Kotlin это «не имеет значения», но если вы используете это из Java, он будет «переведен» в статический метод. В kotlin нет эквивалентов статических методов, поэтому это способ сообщить JVM, что при использовании из java это будет преобразовано в статический метод.
Из документы:
Specifies that an additional static method needs to be generated from this element if it's a function.
Это имеет значение, когда вы вызываете метод из Java. Это в документации.