Java的常量定义
在Java中,有三种方法可以统一管理常量。
你知道除了属性之外,应该用哪一种来实现呢?
1. 常量接口
2. 常量类
3. 枚举类
请使用enum。虽然听说过在接口中定义,但从未见过。
以下是一个实现了常量接口的示例(摘自《Effective Java 第2版》第19条)。
public interface PhysicalConstants {
// アボガドロ定数(1/mol)
static final double AVOGADROS_NUMBER = 6.02214199e23;
// ボルツマン定数(J/K)
static final double BOLTZMANN_CONSTANT = 1.3806503e-23;
// 電子の質量(kg)
static final double ELECTRON_MASS = 9.10938188e-31;
}
- implementして利用する。
从没见过。。如果增加了常量接口,就需要实现所需数量的接口?
可能会发生重名的情况。。耦合度很高。不是正确的接口使用方法。
以实现定数类为例
public final class Constants {
public static final String PATH_SEP = "/";
public static final String LINE_SEP = "¥n";
private Constants (){}
}
-
- finalにして継承不可。
- privateコンストラクタでインスタンス不可。
如果一开始创建的人将类名命名为Constants之类的话,就会导致其变得庞大。
大致上都是这样的。
以枚举(enum)类实现的例子
public enum ExamEnum {
SUNDAY(0),
MONDAY(1),
TUESDAY(3),
WEDNESDAY(4),
THURSDAY(5),
FRIDAY(6),
SATURDAY(7);
}
-
- シングルトン強制
-
- 型安全にできる
-
- enumクラスで用意されたメソッド使って色々
- 順番も保持
以前,在某个地方听到「常量类(笑)」这个词,开始使用了起来。与其他方法相比,除了实施代码量外没有其他缺点,所以一直在使用。而且,一旦写好了代码,基本上可以通过复制粘贴实现一些基本操作。因为在网上可以找到很多好用的方法,所以在这里不再赘述。