AndroidAndroid开发Android技术知识

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

如果帮到你,记得收藏哦

上一篇下一篇

猜你喜欢

热点阅读