SORU
25 Mart 2012, Pazar


Nasıl varargs bir yöntem parametresi için bir ArrayList geçmek için?

Temelde yerlerde bir ArrayList var:

ArrayList<WorldLocation> locations = new ArrayList<WorldLocation>();

ben bunu aşağıdaki yöntem çağrısı:

.getMap();

bu getMap parametreleri() yöntemi vardır:

getMap(WorldLocation...locations)

Yaşıyorum sorun bu yönteme locations TÜM liste içinde geçirmek nasıl emin değilim.

Denedim

.getMap(locations.toArray())

ama getMap çünkü Nesneleri kabul etmez bunu kabul etmiyor[].

Eğer kullanırsam artık

.getMap(locations.get(0));

daha iyi çalışır. ama nedense TÜM konumları... elbette eklemeye devam locations.get(1), locations.get(2) vb yapabilirim geçmek istiyorum. ama dizinin boyutu değişir. ArrayList bir kavramı tümüyle kullanmak zorunda değilim

Bu konuda gitmek için en kolay yolu ne olurdu? Hemen şimdi düşünüyorum da değil gibi hissediyorum.

CEVAP
25 Mart 2012, Pazar


toArray(T[] arr) yöntemi kullanın.

.getMap(locations.toArray(new WorldLocation[locations.size()]))

(toArray(new WorldLocation[0]) de çalışır, ama nafile sıfır uzunlukta bir dizi ayrılırken olurdu :)


İşte tam bir örnek:

public static void method(String... strs) {
    for (String s : strs)
        System.out.println(s);
}

...
    List<String> strs = new ArrayList<String>();
    strs.add("hello");
    strs.add("wordld");

    method(strs.toArray(new String[strs.size()]));
    //     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Official Android Tips

    Official And

    23 EYLÜL 2009
  • dhcrr's channel

    dhcrr's chan

    2 Ocak 2007
  • FD2097

    FD2097

    21 HAZİRAN 2009