2010-02-28 8 views
9

Öncelikle Java için kullandığım Eclipse'de yeni. Daha önce Intellig Idea'yi kullanarak Iteratable'ı (Koleksiyon, Liste vb.) Genişleten ve doğru bir foreach döngüsü yaratan bir değişken seçebiliyorum. "Eclipse'de -template: foreach" foreach

Ben Eclipse bitti yineleme için hangi değişken tahmin foreach şablonunda, benzer bir şey yapar biliyorum ama seçilmiş bir değişkenle aynı şey atamıyorum. Ama eğer değişken mevcut kapsamda değilse ve Eclipse yanlış tahmin ederse ne olur?

Yani ne yineleyici uygulayan (bir değişken döndürür veya işlevi) bir değişken seçin mümkün ediliyor yapmaya çalışıyorum ve dönüş var:

Seçim:

functionWhichReturnsList() (which returns List<TypeOfItemsInList>) 

Sonuç:

for (TypeOfItemsInList item : functionWhichReturnsList()) { 
    ${cursor} 
} 

Herhangi bir fikir?

+1

Kök sorunu için lütfen [bu yanıt] [1] 'a bakın. [1]: http://stackoverflow.com/a/17591263/2394218 – summerian

+0

Bu on Bu have been yöntemdir https://stackoverflow.com/a/17591263/1053496 – nantitv

cevap

8

Genellikle aşağıdaki adımları izleyerek böyle kodu oluşturmak ] döngü için eklemek için (tutulması genellikle tercih çünkü ilmek oluşturarak zaman iterable yakın) imleci koyarak

List<TypeOfItemsInList> list = functionWhichReturnsList() 

for (TypeOfItemsInList item : list) { 
} 

Inline lokal değişken liste değişkeni ve Alt + ÜstKrkt + yazarak Alt + ÜstKrktr + I:

for (TypeOfItemsInList item : functionWhichReturnsList()) { 
} 

Bu en uygun değil, ancak çalışır.

+1

benim için çalıştı de kullanarak, ama en azından söylemek can sıkıcı. Belki bu eklenti bölgesi nedir? Ya da Eclipse'deki şablon sisteminde bir değişiklik olabilir mi? – Casper

+0

Bundan daha iyisi yok. Ayrıca, for döngüsünde bir yöntemi çağırmak, formda ise (int i = 0; i

+1

En iyi cevap: http://stackoverflow.com/a/17591263/2650097 – Kranach

0

Bildiğim kadarıyla, Eclipse açıkladığınız şekilde desteklemiyor.

Eğer Eclipse sen foreach şablonunda yer tutucu yinelemenize sekme tuşunu kullanabilirsiniz doğru değişken bulmamaktadır. Yinelenen noktada tutulması, seçebileceğiniz yinelenenlerin listesini gösterir.

0

Muhtemelen tutulmada bunu yapamazsınız, ancak for yazıp Ctrl-Space tuşlarına bastığınızda, kod şablonları menüsü açılır penceresini iki kez göreceksiniz. Sonra uygun yerde functionWhichReturnsList() seçebilir ve tutulma gerisini halledecektir.

Çağrı fonksiyonu ve yerel bir değişken dönüş değeri tutan oluşturmak için-1 Ctrl kullanın::

List<TypeOfItemsInList> list = functionWhichReturnsList() 

Tip önü [Ctrl-uzay

8

Güncelleme

Geçenlerde sonek kod tamamlama (https://github.com/trylimits/Eclipse-Postfix-Code-Completion) sağlayan üstün eklenti buldum.

enter image description here

yanında eklenti sağlar daha yararlı yarışmalar :)

Güncelleme: o foreach döngüsü için nasıl çalıştığını budur

bir QuickFix için eklenmiştir Eclipse 4.4 What's New in Luna (JDT) yılında

bu konu.Bu ayrıca diziler, koleksiyonlar ve haritalar için de kullanılabilir (anahtar kümeleri ve değerler). Eclipse için

enter image description here

4,4 öncesi:

Ben de aynı sorunu yaşıyorum ama bir çözüm bulmak mümkün değildi. Yani, şu an için istenen döngüyü elde etmek için aşağıdaki adımları gerçekleştiriyorum.

ön [Ctrl-boşluk] ve foreach şablonu seçin aşağıdaki alıyorum:

sonra
for (iterable_type iterable_element : iterable) { 

} 

Ben iterable üzerinde çift tıklama gerçekleştirmek ve yöntemle ile değiştirin:

for (iterable_type iterable_element : functionWhichReturnsList()) { 

} 

Bir sonraki adımda functionWhichReturnsList()'a tıkla ve Ctrl-1'e bas. Eclipse, iterable_element türünü TypeOfItemsInList olarak değiştirmeyi önerecektir.

for (TypeOfItemsInList iterable_element : functionWhichReturnsList()) { 

} 

Şimdi, sadece iterable_element için uygun bir isim bulmak gerekir: Bu Sonunda almak istiyorum. Sadece üzerine çift tıklayın ve yazmaya başlayın.

+0

Teşekkürler. Eclipse Mars'ta çalışıyor! – lmo