当前位置: 首页 > 知识库问答 >
问题:

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

贝自怡
2023-03-14

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

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

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

有人能证实这一点吗?

共有1个答案

谯皓君
2023-03-14

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

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

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

 类似资料:
  • 我有5个SQL表 存储 工作人员 部门 SOLD_Items staff_rating 我创建了一个视图,将这四个表连接在一起。最后一个表(staff_rating),我希望在接近项目被出售的时间(sold_items.date)获得视图行的rating列。我尝试了以下SQL查询,这些查询工作正常,但存在性能问题。 SQL查询1 SQL查询2 SQL查询%2比SQL查询%1快。但这两种方法都存在性

  • 我把一些文件移到了新包中,这样事情就会变得更有意义,但这导致了我的依赖关系变得混乱。 这些行给出了“无法解析符号'springframework'”的建议,并建议添加一个maven依赖项。如果我这样做,那么pom.xml文件中没有任何变化。此外,pom还有“spring-boot-starter-frontdata-jpa”和“org.springframework.frontdata”的错误,表

  • 问题内容: 我是ORMLite的主要作者,它使用类上的Java注释来构建数据库模式。我们的程序包最大的启动性能问题是在Android 1.6下调用注释方法。直到3.0我都看到了相同的行为。 我们看到以下简单的注释代码 难以置信地 占用大量GC,这是一个实际的性能问题。在快速的Android设备上,对注释方法的1000次调用几乎耗时一秒。Macbook Pro上运行的相同代码可以同时进行2800万次

  • 我试图升级我目前的java项目,运行在1.6到1.8,但程序编译良好如何曾经当我去http://localhost:8080/MyProject/login.jsp-我得到错误。 我正在使用eclipse luna,我将java\u HOME更改为1.8,将eclipse项目facets更改为1.8,并更新了javax。servlet api=3.1.0。 堆栈跟踪 无布局。jsp 我用常春藤做依

  • 我正在试着检查用户是在Iphone上还是在Android上 当我注释这行代码时,应用程序运行良好

  • 我有一个ViewPager与3片段。它们中的每一个都包含相同的视图,并且当片段对用户可见时,视图会动画。我重写setUserVisibleHint启动动画。当我滑动到片段时,视图仍然存在一秒钟,消失,然后开始动画。当视图不可见时,我想完全删除它们,当滑动到片段时,它们变得可见,动画开始。基本上,当参数为false时,我试图将它们隐藏在setUserVisibleHint中。这没什么用。即使片段不可