Выбор ответа Junior Java-интероп спрашивают часто обновлено
Зачем нужен @JvmStatic
Вопрос
Как сделать, чтобы Java вызывала функцию из companion object как User.create()?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Пометить функцию @JvmStatic. Без аннотации функция companion object это метод синглтона Companion, и Java вызывает User.Companion.create(). @JvmStatic дополнительно генерирует статический метод в самом классе. const применим только к свойствам-константам примитивов и…
Варианты ответа
- Пометить функцию
@JvmStaticправильный ответ - Ничего не делать: companion object компилируется в статические методы
- Пометить функцию
const - Объявить её
private
Разбор
Без аннотации функция companion object это метод синглтона Companion, и Java вызывает User.Companion.create(). @JvmStatic дополнительно генерирует статический метод в самом классе. const применим только к свойствам-константам примитивов и строк, а private скроет функцию совсем.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.