luk*_*tei 7 java enums rx-java rx-javafx
在RXJava [1]中有一个枚举[2]定义为
public enum JavaFxObservable {
; // no instances
public static void staticMethod() {
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
这种技术使用没有实例的枚举的目的是什么?为什么不使用标准类?
这种技术使用没有实例的枚举的目的是什么?
您以最简单的方式定义这是一个没有实例的类,即它是实用类.
为什么不使用标准类?
一个enum是一个班级.它也是私有构造函数的最终版本.你可以写
public final class JavaFxObservable {
private JavaFxObservable() {
throw new Error("Cannot create an instance of JavaFxObservable");
}
}
Run Code Online (Sandbox Code Playgroud)
但这更冗长,更容易出错.例如,我在实际代码中看到了这一点
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();
}
}
}
Run Code Online (Sandbox Code Playgroud)
评论是我的.;)
| 归档时间: |
|
| 查看次数: |
579 次 |
| 最近记录: |