Kotlin as 强制转换的细节

作者: zhongjh | 来源:发表于2022-04-11 18:14 被阅读0次

我们直接看一段代码


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")
    }

如果帮到你,记得收藏哦

相关文章

网友评论

    本文标题:Kotlin as 强制转换的细节

    本文链接:https://www.haomeiwen.com/subject/daqwsrtx.html