提问者:小点点

ViewBinding-通过get()公开视图会导致性能问题吗?


最近我将我的项目迁移到ViewBinding,为了使它不那么冗长,我决定通过get()属性公开它,它似乎工作得很好,但是其他一些开发人员说它可能会导致内存问题,因为它给变量赋值,我认为它没有这样做,因为它是通过get()属性公开的。示例:

class MyActivity : AppCompatActivity() {
    private val textView: TextView get() = binding.textViewID

    private val binding by lazy { MyActivityBinding.inflate(layoutInflater) }
}

有人能证实这一点吗?


共1个答案

匿名用户

当定义具有getter且没有初始赋值的属性时,不会生成备份字段。所以不,这不是在浪费内存。

在一行上编写它的方式看起来与代码非常相似,在代码中没有定义getter,并且要为备份字段赋一个初始值。也许你的同事误读了你的代码。我通常在下一行定义getter,这样看起来就不一样了。否则,当您打算包含get()时,很容易意外地忽略它。

即使它创建了一个支持属性,您肯定没有足够的视图被引用,以至于它甚至会占用大量的内存,您应该为此浪费时间。