我有一个名为 UserManager
的界面
interface UserManager {
var user:User
/* ... */
}
和一个名为 UserManagerImpl
的类,它实现 UserManager
class UserManagerImpl : UserManager {
override var user: User // = must provide an User object
/* ... */
}
这是我的问题:
如何允许另一个类在 UserManager()
中随时设置 User
(即不提供属性声明旁边的初始 User
对象,让另一个类创建并提供 User
实例)?
Take in count that
-
接口不能具有 lateinit 属性
-
我希望
User
是非空值,因此没有可空属性(User?
) -
我想使用字段访问而不是声明并在界面中使用
setUser(User)
和getUser()
方法
1 回答
确实“接口不能具有 lateinit 属性”,但这并不妨碍实现类使用它:
打印像
LateinitKt$main$1@4b1210ee
之类的东西 .