【发布时间】:2010-10-03 12:49:49
【问题描述】:
假设您需要定义一个类,它所做的只是保存常量。
public static final String SOME_CONST = "SOME_VALUE";
这样做的首选方法是什么?
- 接口
- 抽象类
- 最后一节课
我应该使用哪一个?为什么?
澄清一些答案:
枚举 - 我不会使用枚举,我不会枚举任何东西,只是收集一些彼此不相关的常量。
接口 - 我不会将任何类设置为实现接口的类。只想用接口调用常量,像这样:ISomeInterface.SOME_CONST。
【问题讨论】:
-
这里有一些类似的讨论:stackoverflow.com/questions/320588/…。我会使用带有私有构造函数的 final 类,这样它就不能被实例化。
-
抱歉,“我不会使用枚举”将这个问题变成了“做一些愚蠢的事情的最佳方法是什么?”
-
我不是说你要实现这个接口。但是没有必要使用接口来做到这一点。所以,去最后一堂课吧:)
-
枚举有什么问题?您总是可以使用它来收集“一些彼此不相关的常量”。嗯?
-
从概念上讲,如果常量不相关,枚举是一个不好的选择。枚举表示相同类型的替代值。这些常量不是替代品,它们甚至可能不是同一类型(有些可能是字符串、一些整数等)
标签: java class-constants