Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我在回家的路上有个有趣的问题
我有一个枚举
public enum Gender{ Yes(Constants.male()), female(Constants.female()); private final String value; private Gender(String option){ value = option; } }
..我应该封装价值还是将其声明为公开?
运行时初始化值有缺点吗?
在您的情况下,应该没有太大区别,String该类是不可变的。但是,建议使用封装,因为封装是一种很好的做法。
String
至于“运行时”初始化,我不确定你的意思。Enum 本质上是单例的,所以它会在类加载时被初始化。这是在运行时,是的,但没有缺点;特别是如果您不想对值进行硬编码。
编辑
正如@GyroGearless 指出的那样,该字段应声明为final,这是最佳实践,即使它不是public构造函数中的常量集。
final
public