SORU
11 Mart 2009, ÇARŞAMBA


En iyi şekilde Java boş bir harita oluşturmak için

Boş bir harita oluşturmak istiyorum.

if (fileParameters == null)
    fileParameters = (HashMap<String, String>) Collections.EMPTY_MAP;

Sorun yukarıdaki kod bu uyarıyı oluşturur: Güvenlik türü: Göster İşaretli dökme HashMap

Bu boş bir harita oluşturmak için en iyi yolu nedir?

CEVAP
11 Mart 2009, ÇARŞAMBA


1)Eğer Harita değişmez ise:

Collections.emptyMap();

// or, in some cases:
Collections.<String,String>emptyMap();

Derleyici otomatik olarak Göster gibi (bu type inference denir) tabi ne olduğunu anlayamadım, ne zaman ikincisi bazen kullanman gerekecek. Örneğin, bir yöntem, bu gibi ilan düşünün:

public void foobar(Map<String,String> map){ ... }

Boş Harita için doğrudan geçerken, türü hakkında açık olmak zorunda:

foobar(Collections.emptyMap());                // doesn't compile
foobar(Collections.<String,String>emptyMap()); // works fine

2)Eğer Harita değiştirmek mümkün olması gerekir, örneğin:

new HashMap<String,String>();

(tehblanx pointed out)


Ek: eğer proje Guava, kullanıyorsa, aşağıdaki seçenekler vardır:

1)Harita değişmez:

ImmutableMap.of();
// or:
ImmutableMap.<String, String>of();

Kabul ediyorum, hiçbir büyük faydaları buradaCollections.emptyMap()göre. From the Javadoc:

Bu harita ve nispeten Collections.emptyMap(),davranır gerçekleştirir ve esas tutarlılık için tercih edilir ve sürdürülebilirliği senin kod.

2)Değiştirebileceğiniz harita:

Maps.newHashMap();
// or:
Maps.<String, String>newHashMap();

Maps TreeMap LinkedHashMap gibi haritalar diğer türleri başlatmasını için benzer Fabrikası yöntemleri içerir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • discokatze

    discokatze

    23 EYLÜL 2009
  • metagamers

    metagamers

    13 Mayıs 2006
  • olinerd

    olinerd

    23 AĞUSTOS 2007