java - 如何在 Java 中为成员 arraylist 变量实现惰性初始化?

标签 java lazy-loading lazy-initialization

我有一个类 private List<String> children;目前已在构造函数中初始化,但这并不总是需要的,我只想在其他函数需要时才初始化它。

重点是在不更改太多代码的情况下返工当前的实现。

我知道如何用其他语言做到这一点,但到目前为止,Java 知识非常有限。

最佳答案

简而言之,这是实现它的一种方式:

public class Whatever 
{
    private List<String> children;

    public List<String> getChildren
    {
        if ( children == null ) { children = new ArrayList<String>(); }
        return children;
    }
    ...
}

此外,记得写 eg. addChild( String child )get 方面,而不是直接访问该字段。如果您真的很偏执和/或在线程环境中并且创建需要很长时间,您可能希望使 block 同步

关于java - 如何在 Java 中为成员 arraylist 变量实现惰性初始化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13801476/

相关文章:

hibernate - p :datatable - update ManyToMany property results in LazyInitializationException

c# - C# 中的惰性字典属性

java - 用文本框中的内容替换文件中的字符串 JAVA/ANDROID

java - 改变开源代码

java - 如何在 Blackberry 项目中存储 32 MB 文件

c# - 为什么延迟加载不起作用?

jquery - 不应用 jQuery LazyLoad 插件识别客户端是否是机器人 - cakephp

android - 带有图像的惰性列表。如何取消线程?

java - Hibernate 将 NULL 时间戳解释为当前日期/时间

java - 是否应该延迟执行参数验证