【发布时间】:2014-10-18 13:16:39
【问题描述】:
我知道枚举在java中的用法。
是否推荐使用枚举来存储程序常量(而不是下面描述的类)?
public class Constants{
public static final String DB_CF_NAME = "agent";
public static final String DB_CF_ID = "agent_id";
public static final String DB_CF_TEXT = "agent_text";
public static final String DB_CF_LATITUDE = "latitude";
}
【问题讨论】:
-
是的。
Enums(与class不同)旨在以这种方式使用。 -
我实际上会说这取决于您的常量。想象一个项目,你有不同类型的常量,
String、double、int等,那么枚举并不适合,而是一个包含很多static final变量的类。 -
恕我直言,在定义常量方面,枚举相对于类的唯一真正优势是枚举自动成为静态单例并且自动成为最终的。您或您的用户不能犯实例化或覆盖常量容器的错误。
-
别忘了,ENUM 是枚举数据类型。这些是具有值集的数据类型。从技术上讲,它适合常量,但从概念上讲,它们不是……最好在上下文中使用
private常量。