gpt4 book ai didi

java - 枚举实践——在类内定义/单独定义,公开/私有(private)

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:15:34 26 4
gpt4 key购买 nike

定义枚举时什么是好的做法?

例如,我有一个 Person 类。对于此类,我选择使用具有值 MALE 和 FEMALE 的枚举。

枚举应该在 Person 类中定义还是单独定义?枚举应该定义为私有(private)的还是公共(public)的?此外,您是否有任何进一步的建议可以使枚举的使用尽可能灵活?

最佳答案

恕我直言,让它成为 public static enum里面class Person .

原因是enum Gender仅适用于人,所以把它放在那里以便它们绑定(bind)在一起(如果没有人的上下文,性别就没有用)。

优点:

  • 减少类膨胀
  • 如果您将 Person 移动到另一个包/项目,Gender 将始终随之而来
  • 作为唯一用户的人可以“控制”它并可以根据需要更改它,例如
    • 添加private List<HealthIssue> genderSpecificHealthIssues;
    • 添加更多枚举,例如 TRANSGENDER , INTERSEX , 或其他什么

唯一的缺点是您必须使用 static导入以使用它,即 import static com.company.Person.Gender.*; .

这种模式在许多 JDK 类中都可以看到,例如 Calendar它定义了它在内部类中使用的许多与日期相关的常量。

关于java - 枚举实践——在类内定义/单独定义,公开/私有(private),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6484003/

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