【发布时间】:2018-03-06 15:47:16
【问题描述】:
我有以下(简化的)kotlin 代码:
data class Event(val name: String, val venue: Venue?)
data class Venue(val lat: Double, val lng: Double)
...
return events
.filter { it.venue != null }
.map { doSomething(it.venue.lat, it.venue.lng)
代码无法编译并出现错误Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type Venue?
我明白这意味着什么,但我不明白为什么编译器无法在.map 调用中找出it.venue 不能是null。
如果事件可以为空,我可以写events.filterNotNull().name 或其他东西,编译器不会抱怨。有什么方法可以对可空对象属性而不是可空对象做同样的事情?
感谢您的宝贵时间
【问题讨论】:
标签: compiler-errors kotlin nullable