2010-08-30 12 views

cevap

29
+2

Guava müthiş bir kütüphane olacak. Bu taş! +1 –

+2

"Sets.immutableEnumSet", yalnızca "ImmutableSet" değil, genel bir "ImmutableEnumSet" sınıfı döndürürse kabul ederdi. Yine de bunu yapmak için istekte bulunmaya çalışacağım. –

+4

Bu public ImmutableEnumSet türünde ne gibi yararları görüyorsunuz, merak ediyorum? –

11

ile ilgili sorun nedir EnumSet?

Gerçek, orijinal EnumSet hala değiştirilebilir, ancak orijinal başvuruyu attığınız sürece, sarıcı içinde değiştirilemez.

düzenleme: Tamam, üzerinde herhangi bir örnek yöntemleri sunmak ve Set arayüzüne yukarıda, bu çözümü kullanmayan tek nedeni EnumSet tip belgeler amaçlar için yararlı olduğunu, ve ne zaman o kaybetmez EnumSet beri Set'da sarmak. Bunun dışında, EnumSet davranışı korunacaktır.

+4

Bu bir 'EnumSet' –

+0

@Colin tüm yöntemi yok hangi yöntemleri olur o olabilir mi? Sarma işleminden önce enumset'i oluşturmak için statik yöntemleri kullanmaya devam edebilirsiniz ve diğer setlerin de içermediği enumset'te yeni örnek yöntemleri göremiyorum. –

+0

@skaffman. Sanırım çoğunlukla belgeleme amaçlı istiyorum. EnumSet ile ilgili olan şey, belirli bir yineleme sırasını belirlemesidir ve eğer 'Set' yerine 'EnumSet'i kullanırsanız, beklediğinizden farklı sonuçlar üretebilir: Birisi yöntem imzasında 'Set'i görür ve' HashSet' içinde geçer Örneğin. Bu gereklilik olmadan öneriniz iyi olurdu. BTW, EnumSet'in bazı yöntemleri (sadece yapıcılar) yoktur, ancak bazı durumlarda 'ilk ',' son 've' tersiyer 'olması gerçekten güzel olurdu. –