2016-04-19 15 views
5

Bir süre/yineleyici açılan yerine bir koleksiyon üzerinde yineleme yapmak için foreach kullanmak için kodun basit bir yolu olup olmadığını bilen var mı?Eclipse refactor Iterator/foreach ne zaman

Örnek:

Ben:

Iterator<MyObject> iterator = list.iterator(); 
while (iterator.hasNext()) { 
    MyObject myObject = iterator.next(); 
    // do stuff 
} 

Ve istediğim:

for (MyObject myObject : list) { 
    // do stuff 
} 

Ve evet, ben herhangi bir performans iyileştirmeleri almazsınız anlıyoruz. Ben sadece daha az ayrıntılı olmak istiyorum ve çünkü ben fantezi :)

+2

*** kod üstlenmeden basit bir yolu ... *** tıpkı diğer ... –

+0

A tek pasajını yerini * * Daha basit ** bir maymun işi yapmak yerine kodu yeniden kodlama yolu :) – renke

+0

Refactoring ile ne demek istiyorsun? Bu, kaynak kodunuzdaki her dosyada değiştirmeyi otomatikleştirmeyi mi kastediyorsunuz? –

cevap

0

Yineleme kodunun tüm yinelemesinin örneğinize benzediğini varsayalım, bulmayı deneyin ve aşağıdaki normal ifadeyle değiştirin.

Bul:

Iterator<([a-zA-Z0-9_]{1,})> [a-zA-Z0-9_]{1,} = ([a-zA-Z0-9_]{1,})\.iterator\(\);\R[\t]{1,}while \(iterator\.hasNext\(\)\) \{\R[\t]{1,}[a-zA-Z0-9_]{1,} ([a-zA-Z0-9_]{1,}) = iterator\.next\(\); 

değiştirin:

for($1 $3 : $2) { 
İlgili konular