Gibt es Pläne für ImmutableEnumSet in Java 7?
Will ich alle haben die Effizienz von EnumSet und geben Sie es herum, ohne sich sorgen, dass jemand würde es ändern.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Will ich alle haben die Effizienz von EnumSet und geben Sie es herum, ohne sich sorgen, dass jemand würde es ändern.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erhalten Sie eine unveränderliche EnumSet mit Google collections (Guave).
Ressourcen :
Sets.immutableEnumSet
hätte wieder eine öffentlicheImmutableEnumSet
Klasse, nicht nurImmutableSet
. Aber ich werde versuchen eine Anfrage zu stellen, um so zu tun.Was ist falsch mit
Collections.unmodifiableSet()
Verpackung einesEnumSet
?Wahre, die ursprüngliche
EnumSet
ist noch veränderbar, aber solange Sie verwerfen die ursprüngliche Referenz, es ist so gut wie unveränderlich in der wrapper.edit: OK, da
EnumSet
bieten nicht alle Instanz-Methoden über dieSet
interface, der einzige Grund für die nicht-Verwendung dieser Lösung ist, dass dieEnumSet
- Typ ist nützlich für die Zwecke der Dokumentation, und Sie verlieren, dass beim wickeln Sie es in einSet
. Other than, dieEnumSet
Verhalten beibehalten wird.EnumSet
Set
im OrtEnumSet
es kann zu unterschiedlichen Ergebnissen führen, als Sie erwarten: jemand sieht dieSet
in der Signatur der Methode und übergibtHashSet
zum Beispiel. Ohne diese Voraussetzung ist Ihr Vorschlag wäre in Ordnung. BTW, dieEnumSet
keine zusätzlichen Methoden ( nur Konstruktoren ), aber es wäre wirklich schön zu habenfirst
,last
undreverseIterator
in einigen Fällen.ArrayList.ensureCapacity()
EnumSet
ist wirklich ein problem mitEnum
. Ich hätte es nicht gemerkt zu Münze MyEnumSet für meine Rahmen, aber daEnum
ist so besonders, ich haben keinen Zugriff auf Ihre geheimen sauce ( Sie nannte es sogar SharedSecrets ) die Art und Weise Java-framework-Entwickler tun.EnumSet.complementOf()
erfordert eineEnumSet
als argument.