Функция-член класса singleton каждый раз возвращает один и тот же объект? - PullRequest
0 голосов
/ 20 апреля 2020
object Someclass {
   fun createEmployee(): Employee {
     return Employee("john", "1221")
  }
}
data class Employee(val name: String, number: String)

"Когда я вызываю Someclass.createEmployee(), он каждый раз возвращает один и тот же объект сотрудника?"

"Если он каждый раз возвращает новый объект сотрудника. Как заставить Someclass.createEmployee() возвращать один и тот же объект? объект каждый раз? "

1 Ответ

0 голосов
/ 20 апреля 2020

Каждый раз возвращает новый объект. Employee("john", "1221") вызывает конструктор Employee с заданными аргументами и возвращает новый объект.

Если вы хотите каждый раз возвращать один и тот же объект, вам нужно где-то сохранить объект в переменной и получить к нему доступ. переменная вместо Что-то вроде следующего заставит createEmployee возвращать одного и того же сотрудника каждый раз:

object Someclass {
    private var employee: Employee? = null

    fun createEmployee(): Employee {
        if ( employee == null )
            employee = Employee("john", "1221")
        return employee!!
    }
}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...