在 RXJava [1] 中有一个枚举 [2] 定义为
public enum JavaFxObservable {
; // no instances
public static void staticMethod() {
// ...
}
}
这种技术使用没有实例的枚举的目的是什么?为什么不使用标准类?
在 RXJava [1] 中有一个枚举 [2] 定义为
public enum JavaFxObservable {
; // no instances
public static void staticMethod() {
// ...
}
}
这种技术使用没有实例的枚举的目的是什么?为什么不使用标准类?
这种技术使用没有实例的枚举的目的是什么?
您以最简单的方式定义这是一个没有实例的类,即它是实用程序类。
为什么不使用标准类?
Anenum
是一个类。它也是具有私有构造函数的最终结果。你可以写
public final class JavaFxObservable {
private JavaFxObservable() {
throw new Error("Cannot create an instance of JavaFxObservable");
}
}
但这更冗长且容易出错。例如,我在真实代码中看到了这一点
public final class Util {
private Util() {
}
static void someMethod() { }
static class DoesSomething {
void method() {
// WAT!? we can still create this utility class
// when we wrote more code, but it's not as good.
new Util().someMethod();
}
}
}
评论是我的。;)