【发布时间】:2019-07-01 06:29:24
【问题描述】:
比方说,我有一个变量:
var myObject : MyObject? = null
应该在某个地方清除它:
myObject?.clear
myObject = null
并且在使用的地方绝对不能为空。在 Java 中,我可以这样做:
private MyObject getMyObject(){
if(myObject == null) {
myObject = new MyObject()
}
return myObject
}
问题:如何在 Kotlin 中实现这一点?
我找到了使用 elvis-operator 的建议:
private fun getMyObject() = myObject ?: MyObject()
但这不会将结果(如果将创建 MyObject 的新实例)分配给 myObject 变量。
请帮我解决和解释。先谢谢了
【问题讨论】:
-
你可以像在 Java 中一样:
private fun getMyObject(): MyObject { if(myObject == null) { myObject = MyObject() } return myObject } -
@Sergey - 当然,我知道我可以使用这种方法。问题是关于更优雅的解决方案
标签: java kotlin nullable getter backing-field