【发布时间】:2013-03-31 15:30:09
【问题描述】:
当我们想定义一个像 pi 这样的常量时,我们可以像 public static final float pi = 3.14 那样做。但是可以说我想要一个停用词列表,这些停用词是在扫描一个也会发生变化的文件后生成的。我也可以进行“惰性”初始化吗?你会怎么做?
【问题讨论】:
-
您能否详细说明一下“但是假设我想要一个停用词列表,这些停用词是在扫描一个也发生变化的文件后生成的”
-
听起来你想要一个工厂类来生成一个包含常量列表的类。
-
@Lokesh 我正在扫描文件并将单词存储在列表中。但我不想存储“a”、“is”等高频词。所以我将它们保存在一个文件中。但我可以稍后添加到此列表中。所以我想要一个单词列表作为常量,但这将在扫描文件后生成。还是将单词列表称为常量是个坏主意?
-
因为它不是恒定的:可能。 Java 中的常量(即
static final字段)用于原子的、不可更改的东西。它们的值甚至由编译器内联,因此您需要重新编译使用任何公共常量的每个依赖项。List本身(但不是它的内容!)可以被视为一个常数,但它们是发布其价值的更好方法。
标签: java design-patterns constants