为什么我们在Groovy中需要@lazy属性,它的优点是什么?
发布时间:2020-12-14 16:24:09 所属栏目:大数据 来源:网络整理
导读:我学习Groovy时最令人困惑的概念之一是:懒惰的属性. 从C/C++找不到类似的东西 有谁知道为什么我们需要这些东西以及如何在没有它的情况下生活,或者替代方法. 感谢任何帮助:) 解决方法 groovy中的@Lazy注释通常用于对象中的一个字段,这个字段的创建时间或内存
我学习Groovy时最令人困惑的概念之一是:懒惰的属性.
从C/C++找不到类似的东西 有谁知道为什么我们需要这些东西以及如何在没有它的情况下生活,或者替代方法. 感谢任何帮助:) 解决方法
groovy中的@Lazy注释通常用于对象中的一个字段,这个字段的创建时间或内存都很昂贵.使用此注释时,在创建对象实例时不会计算对象中的字段值,而是在第一次调用时计算它.
因此,即您创建了一个对象的实例,但是您没有获得带有@Lazy注释的字段,因此永远不会计算字段值,因此您可以节省执行时间和内存资源.查看代码示例(示例有废话,但我希望有助于理解解释): // without lazy annotation with this code token.length is calculated even // is not used class sample{ String token Integer tokenSize = { token?.length() }() } def obj = new sample() obj.token = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaa' // with Lazy annotation tokenSize is not calculated because the code // is not getting the field. class sample{ String token @Lazy tokenSize = { token?.length() }() } def obj = new sample() obj.token = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaa' 希望这可以帮助, (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |