gpt4 book ai didi

java - 如何声明 OneToMany 成员变量

转载 作者:太空宇宙 更新时间:2023-11-04 08:49:50 25 4
gpt4 key购买 nike

以下哪一项声明是选择正确的声明来分配正确的内存量。选项 1 的初始收集容量为 0,选项 2 的初始容量为 10,选项 3 不声明任何内容。

如果底层 ORM 提供程序最终加载这些对象,它不会使用 setEmails(..) 方法来设置 Collection 的值。如果是这样,像选项 3 那样声明它是否有意义,这样我就可以避免不必要的内存分配。

Option 1
@OneToMany(mappedBy = "user", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private Set<Email> emails = new HashSet<Email>(0);

Option 2
@OneToMany(mappedBy = "user", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private Set<Email> emails = new HashSet<Email>();

Option 3
@OneToMany(mappedBy = "user", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private Set<Email> emails;

最佳答案

这就是微优化。

从技术上讲,就内存分配而言,它们是排序的:

选项 3 优于选项 1 略优于选项 2

但是,选项 2 可能是您的最佳选择

  • 添加项目时,集合不必展开
  • 您的代码将更容易处理,因为您不必检查 null

关于java - 如何声明 OneToMany 成员变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3615180/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com