Kotlin as 强制转换的细节
2022-04-11 本文已影响0人
zhongjh
我们直接看一段代码
image.png
我们直接看getPageFragment
返回的Fragment?
表示是一个可能为null的Fragment,但是为什么getItemId
方法里面没有null警告呢?
原来是as强制转换后编译上认为肯定不为null了
所以良好的代码习惯应该如下:
override fun getItemId(position: Int): Long {
val yuanShenFragment = getPageFragment(position.toLong()) as? YuanShenFragment
yuanShenFragment?.requireActivity()
return position.toLong()
}
private fun getPageFragment(id: Long): Fragment? {
return fragmentManager.findFragmentByTag("f$id")
}
如果帮到你,记得收藏哦