Выбор ответа Middle Классы, data и sealed спрашивают часто обновлено

companion object и static

Вопрос

Как метод из companion object выглядит для Java-кода без дополнительных аннотаций?

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

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

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

Коротко

Правильный ответ: Как метод синглтона User.Companion.create(). Companion object это настоящий объект-синглтон, вложенный в класс, с именем Companion по умолчанию.

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

  1. Как статический метод User.create()
  2. Он недоступен из Java без @JvmStatic
  3. Как метод синглтона User.Companion.create()правильный ответ
  4. Как метод экземпляра new User().create()

Разбор

Companion object это настоящий объект-синглтон, вложенный в класс, с именем Companion по умолчанию. Из Kotlin пишут User.create(), а из Java без аннотаций нужно User.Companion.create(). Чтобы получить настоящий статический метод, добавляют @JvmStatic, для поля @JvmField или const.

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

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