单例类成员函数每次都返回相同的对象吗?

问题描述 投票:0回答:1
object Someclass {
   fun createEmployee(): Employee {
     return Employee("john", "1221")
  }
}
data class Employee(val name: String, number: String)

“当我呼叫Someclass.createEmployee()时,它每次都返回相同的雇员对象吗?”

“如果每次都返回新员工对象。如何使Someclass.createEmployee()每次都返回相同对象?”

kotlin singleton
1个回答
0
投票

每次都会返回一个新对象。 Employee("john", "1221")正在使用给定的参数调用Employee构造函数,并返回一个新对象。

如果要每次都返回相同的对象,则需要将该对象存储在某个变量中,然后访问该变量。如下所示将使createEmployee每次都返回同一位员工:

object Someclass {
    private var employee: Employee? = null

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

如您所见,该代码检查员工是否存在,并在必要时创建新员工。但是一旦创建了员工,则每次都返回相同的员工。

© www.soinside.com 2019 - 2024. All rights reserved.