Sono previsti piani per ImmutableEnumSet in Java 7?
-
25-09-2019 - |
Domanda
Voglio avere tutta l'efficienza di EnumSet e passarlo in giro senza preoccuparmi che qualcuno lo modifichi.
Soluzione
Puoi ottenere un enumset immutabile con Google Collections (guava).
Risorse:
Altri suggerimenti
Cosa c'è che non va Collections.unmodifiableSet()
avvolgendo un EnumSet
?
Vero, l'originale EnumSet
è ancora mutabile, ma finché si scarta il riferimento originale, è praticamente immutabile all'interno del wrapper.
modificare: OK, da allora EnumSet
non offre alcun metodo di istanza oltre a Set
interfaccia, l'unico motivo per non utilizzare questa soluzione è che il file EnumSet
type è utile a scopo di documentazione e lo perdi quando lo racchiudi in un file Set
.Oltre a quello, EnumSet
il comportamento verrà preservato.