SORU
22 Kasım 2009, Pazar


java: HashMap<String, int> çalışmıyor

HashMap<String, int> çalışma görünmüyor ama HashMap<String, Integer> çalışır. Neden herhangi bir fikir?

CEVAP
22 Kasım 2009, Pazar


Java genel bağımsız değişken olarak ilkel türlerini kullanabilirsiniz. Yerine kullanın:

Map<String, Integer> myMap = new HashMap<String, Integer>();

auto-boxing/unboxing ile kod arasında çok az fark vardır. Otomatik boks yazabilirsiniz

myMap.put("foo", 3);

yerine:

myMap.put("foo", new Integer(3));

Auto-boks ilk sürümü örtülü olarak ikinci dönüştürülür anlamına gelir. Otomatik kutulama yazabilirsiniz

int i = myMap.get("foo");

yerine:

int i = myMap.get("foo").intValue();

intValue() örtülü eğer arama anahtarı NullPointerException örneğin: bir oluşturmak bulunmaz eğer anlamına gelir

int i = myMap.get("bar"); // NullPointerException

Nedeni type erasure. , Diyelim ki, aksine C# genel türleri çalışma zamanında korunur değil. Sadece "açık çevrim sen bunu kaydetmek için: . sözdizimsel şeker onlar

Integer i = (Integer)myMap.get("foo");

Bir örnek vermek gerekirse, bu kodu tamamen yasal

Map<String, Integer> myMap = new HashMap<String, Integer>();
Map<Integer, String> map2 = (Map<Integer, String>)myMap;
map2.put(3, "foo");

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Austin Evans

    Austin Evans

    5 AĞUSTOS 2007
  • InfoPuppet

    InfoPuppet

    15 Kasım 2011
  • jbignacio

    jbignacio

    13 Mart 2006