gpt4 book ai didi

没有实例的 Java 枚举

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:25:18 25 4
gpt4 key购买 nike

在 RXJava [1] 中有一个枚举 [2] 定义为

public enum JavaFxObservable {
; // no instances


public static void staticMethod() {
// ...
}
}

这种使用没有实例的枚举的技术的目的是什么?为什么不使用标准类?


最佳答案

What's the purpose this technique using a enum with no instances?

您以最简单的方式定义这是一个没有实例的类,即它是实用程序类。

Why not use a standard class?

enum 是一个类。它也是最终的私有(private)构造函数。你可以写

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();
}
}
}

评论是我的。 ;)

关于没有实例的 Java 枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26118972/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com