W RXJava [1] nie jest enum [2] określono jakoJava enum bez przypadkach
public enum JavaFxObservable {
; // no instances
public static void staticMethod() {
// ...
}
}
Jaki jest cel tej techniki przy użyciu enum bez przypadkach? Dlaczego nie skorzystać ze standardowej klasy?
- [1] https://github.com/ReactiveX/RxJava
- [2] https://github.com/ReactiveX/RxJavaFX/blob/0.x/src/main/java/rx/observables/JavaFxObservable.java
Nie jestem pewien, ale myślę, że może to być czysty sposób, aby zapobiec rozszerzaniu lub tworzeniu instancji – user902383
Ta "klasa" jest po prostu repozytorium funkcji statycznych (i/lub stałych). Wykład nie może być przedłużony, jest klasą końcową. Alternatywą byłoby stworzenie klasy ostatecznej lub abstrakcyjnej z prywatnym konstruktorem. Co jest bardziej szczegółowe. BTW enum jest również używany do singleton, z bezpiecznej inicjalizacji współbieżności. –
"Dlaczego nie używać standardowej klasy?" czy możesz podać przykład, jak taka klasa standardowa byłaby lepsza/prostsza? –