EnumMap sınıfı kurucu, bağımsız değişken olarak sınıf gerektirir. Çoğu zaman K.class argüman olarak geçti. Map
böylece bütün olası anahtarları bilirEnumMap kurucusunun neden sınıf argümanına ihtiyacı var?
cevap
PKC - Hala K.
denTeşekkür
argüman olarak bu kabul yerine geçenlerden sebebi ne almıyorum. Buna keyUniverse
(dahili olarak) denir. Yorumlar söyler:
K. içeren değerleri (performans için önbelleğe alınmış) her
EnumMap
ihtiyaçlarını uygulamalarıenum
yaklaşık metainformation
, değerler, özellikle sayısı. Class
nesnesi bu bilgiyi sağlar (IMO, belirli bir enum tanımlayıcı türü için gitmek daha iyi olurdu). Class
mevcut değilse, her zaman HashMap
'u bir miktar cezada kullanabilirsiniz. EnumMap
benzeri Map
gibi bir büyüyebilir/kaldırılamazsınız.
Tom's yanıtı doğru, ancak diğer noktanızı ele almak için: bu bilginin yalnızca K
tür parametresinden çıkarılmasının nedeni type erasure kaynaklanmaktadır.
Generics bir derleme zamanı özelliğidir, ancak bu K sınıfı çalışma zamanında gereklidir, bu durumda jeneriklerin yapmayacağı bir şey.
Diğerlerinin belirttiği gibi, jenerikler bir derleyici özelliğidir. Jvm'nin jeneriklerin kendisi için gerçek bir desteği yoktur. Bu, genel bilgilerin çalışma zamanında kullanılamayacağı anlamına gelir. Bu EnumMap<K extends Enum>
için
sınıf nesneleri hala itibariyle mevcut gibi java jenerik Bu sınırlama kurucusuna Jenerik argümanlar sınıflarını geçerek çalışılan K. hakkında herhangi bir bilgi vermeden zamanında bir EnumMap<Enum>
olsun demektir Çalışma zamanı.
- 1. Django'nun render() işlevinin neden "istek" argümanına ihtiyacı var?
- 2. Fibonacci yığınlarının neden basamaklı kesmelere ihtiyacı var?
- 3. Çok fazla bağlantı bağımsız değişkeni. 5 argüman verildi, ancak bildirimin 4 argümanına ihtiyacı var
- 4. SchemaChange'in Reindex'e ihtiyacı var
- 5. libxml2-p25 sudo ihtiyacı var?
- 6. Variadic şablon kurucusunun yazılması
- 7. Neden üst düzey işlevlerimin Haskell'de imzalara ihtiyacı var?
- 8. Her işlemin neden kendi sayfa tablosuna ihtiyacı var?
- 9. Hashhnode kurucusunun nasıl başlatıldığı
- 10. Guava'da karşılık gelen bir immutable enumMap var mı?
- 11. Android Streaming Video - İyon Oranı İhtiyacı Var
- 12. PhoneGap Apps'ın İnternet bağlantısına ihtiyacı var mı?
- 13. Character.isLetter'in normalleştirilmiş metne ihtiyacı var mı?
- 14. Neden boost :: multi_array ConstMultiArrayConcept bir NumDims şablon argümanına sahip?
- 15. scala.util.automata, scala.util.regexp ve scala.util.grammar'ın gerçekten ihtiyacı var mı?
- 16. Nasıl komisyonun bundle exec'ye ihtiyacı var, ancak raylar çalışmıyor?
- 17. RedBean'ın bir "id" birincil anahtarına ihtiyacı var mı?
- 18. Yöntem çağrı URL parametreleri Açısal JS var ben aşağıdaki ihtiyacı
- 19. İşçinin Spark için Hadoop'a da ihtiyacı var mı?
- 20. GD yeniden boyutlandırılırken çok fazla belleğe mi ihtiyacı var?
- 21. Burun, Gözler ve Dudaklar (Ağız) için Haar Casscades İhtiyacı Var
- 22. Dikkat Çekilmemiş Rickshaw.Graph öğesinin referansına ihtiyacı var index.js.erb
- 23. Bir WordPress Blog'unun gerçekten hangi veritabanı ayrıcalıklarına ihtiyacı var?
- 24. .Net RIA Hizmetleri: DomainService Parametersiz Oluşturucuya mı İhtiyacı Var?
- 25. C# Uygulamasındaki Kameradan Video Akışı Yakalama İhtiyacı Var
- 26. dizedir Sınıf-neden
- 27. Neden sınıf yükleyiciyi boşaltmadan bir sınıf yüklenemedi?
- 28. Ben şu sınıf var
- 29. Ben İnsan sınıf var
- 30. bir sınıf var
HashMap boş bırakılamaz, ancak yalnızca bazı öğeler içeriyorsa ve tam olarak kullanılmıyorsa, bunun iyi olması gerekir. –