Выбор ответа Junior Java-интероп спрашивают часто обновлено

Зачем нужен @JvmStatic

Вопрос

Как сделать, чтобы Java вызывала функцию из companion object как User.create()?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Пометить функцию @JvmStatic. Без аннотации функция companion object это метод синглтона Companion, и Java вызывает User.Companion.create(). @JvmStatic дополнительно генерирует статический метод в самом классе. const применим только к свойствам-константам примитивов и…

Варианты ответа

  1. Пометить функцию @JvmStaticправильный ответ
  2. Ничего не делать: companion object компилируется в статические методы
  3. Пометить функцию const
  4. Объявить её private

Разбор

Без аннотации функция companion object это метод синглтона Companion, и Java вызывает User.Companion.create(). @JvmStatic дополнительно генерирует статический метод в самом классе. const применим только к свойствам-константам примитивов и строк, а private скроет функцию совсем.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме