-1

我在回家的路上有个有趣的问题

我有一个枚举

public enum Gender{

    Yes(Constants.male()), female(Constants.female());

    private final String value;

    private Gender(String option){
          value = option;
    }
}

..我应该封装价值还是将其声明为公开?

运行时初始化值有缺点吗?

4

1 回答 1

1

在您的情况下,应该没有太大区别,String该类是不可变的。但是,建议使用封装,因为封装是一种很好的做法。

至于“运行时”初始化,我不确定你的意思。Enum 本质上是单例的,所以它会在类加载时被初始化。这是在运行时,是的,但没有缺点;特别是如果您不想对值进行硬编码。

编辑

正如@GyroGearless 指出的那样,该字段应声明为final,这是最佳实践,即使它不是public构造函数中的常量集。

于 2013-03-07T12:37:48.343 回答