Java - Yeni Entry (anahtar, değer) nasıl oluşturulur
Ben Util.Map.Entry
yapısına benzer şekilde key
, value
yapısını içeren yeni bir öğe oluşturmak istiyorum.
Sorun şu ki, bir Map.Entry
yi örnekleyemiyorum çünkü bu bir arayüz.
Map.Entry için yeni bir genel anahtar/değer nesnesinin nasıl oluşturulacağını bilen var mı?
264
3
Orada's
public static class AbstractMap.SimpleEntry
. İsmininAbstract
kısmının sizi yanıltmasına izin vermeyin: aslında birabstract
sınıfı değildir (ancak üst düzeyAbstractMap
öyledir).İç içe geçmiş
statik' bir sınıf olması, onu örneklemek için çevreleyen bir
AbstractMap' örneğine ihtiyacınız olmadığı anlamına gelir, bu nedenle bunun gibi bir şey iyi derlenir:Başka bir yanıtta belirtildiği gibi, Guava'da kullanabileceğiniz kullanışlı bir
static
fabrika yöntemiMaps.immutableEntry
de vardır.Sen söyledin:
Bu tam olarak doğru değil. Bunu doğrudan (yani
new
ile) örnekleyememenizin nedeni, bunun birinterface Map.Entry
olmasıdır.Uyarı ve ipucu
Belgelerde belirtildiği gibi,
AbstractMap.SimpleEntry
@since 1.6
dır, bu nedenle 5.0'a takılıp kaldıysanız, o zaman sizin için mevcut değildir.Map.Entry
yi
uygulayan` bilinen başka bir sınıf aramak için, aslında doğrudan javadoc'a gidebilirsiniz. Java 6 sürümünden](http://java.sun.com/javase/6/docs/api/java/util/Map.Entry.html)Ne yazık ki 1.5 sürümü kullanabileceğiniz bilinen herhangi bir uygulama sınıfını listelemiyor, bu nedenle kendi sınıfınızı uygulamak zorunda kalabilirsiniz.
Sadece
Map.Entry
arayüzünü kendiniz uygulayabilirsiniz:Sonra da kullan:
Maps.immutableEntry](http://guava-libraries.googlecode.com/svn/trunk/javadoc/com/google/common/collect/Maps.html#immutableEntry(K,%20V)) from Guava adresini deneyin
Bu, Java 5 ile uyumlu olma avantajına sahiptir (Java 6 gerektiren
AbstractMap.SimpleEntry
nin aksine).