Hel*_*oCW 2 kotlin android-jetpack
在我看来,Kotlin 是零安全的。
代码 A 来自项目 Universal Android Music Player Sample,你可以在这里看到
val rootMediaId: LiveData<String>代码A中好像不是空安全的,可以给空字符串赋值rootMediaId,不知道为什么Android Studio可以编译这些代码,能告诉我吗?
我认为代码 B 是有信誉的代码。
代码 A
viewModel.rootMediaId.observe(this,
Observer<String> { rootMediaId ->
if (rootMediaId != null) {
navigateToMediaItem(rootMediaId)
}
})
class MainActivityViewModel(
private val musicServiceConnection: MusicServiceConnection
) : ViewModel() {
val rootMediaId: LiveData<String> =
Transformations.map(musicServiceConnection.isConnected) { isConnected ->
if (isConnected) {
musicServiceConnection.rootMediaId
} else {
null
}
}
...
}
Run Code Online (Sandbox Code Playgroud)
代码 B
class MainActivityViewModel(
private val musicServiceConnection: MusicServiceConnection
) : ViewModel() {
val rootMediaId: LiveData<String?> =
Transformations.map(musicServiceConnection.isConnected) { isConnected ->
if (isConnected) {
musicServiceConnection.rootMediaId
} else {
null
}
}
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
509 次 |
| 最近记录: |