2012-07-03 22 views
8

'daki genel türler için otomatik tamamlama Etkili Java'da belirtildiği gibi, "arabirimlere göre arabirimlere bakın" iyi bir uygulamadır. Yani, örneğin benim kodundaEclipse

List<String> al = new ArrayList<String>(); 

ArrayList<String> al = new ArrayList<String>(); 

üzerinde tercih ederim. Bir can sıkıcı şey, eğer ArrayList<String> al = new yazıp Eclipse'de Ctrl + Space'e basarsam, teklif olarak ArrayList<String>() aldım. Ama ben Al = yeni Listeyi yazıp Ctrl + Space'e basarsam, yalnızca anonim iç sınıf tanımlamak için öneri alırım, ancak new ArrayList<String>(),% 99 vaka veya örneğin yeni Vector<String>().

Soru: Alt sınıfları genel türler için öneriler olarak edinmenin herhangi bir yolu var mı?

+1

için "Use Guava ve önermek için çok arsız olur' Lists.newArrayList() 'o iyi, ama aslında ben propostal gibi tüm alt sınıfları almak istiyorum tabii –

+1

, Sadece listeler için değil – AvrDragon

+1

@JonSkeet Yeni bir bağımlılık ekleyeceksiniz (demek istediğim, onu eklemek istersiniz, fakat değil). Yeni ArrayList <>() 'i" Lists.newArrayList() "olarak değiştirmek için? –

cevap

9

Sadece önce ifadeyi yazmanızı ve sonra Ctrl+2, L'u vurmanızı öneririm. Ardından, değişkeni adlandırabilirsiniz, ardından Enter, Down, Enter. Bitti.

+0

Ancak değişken türünde "ArrayList" yerine "List" yerine dolgu gibi görünüyor. aynı sonucu alırsınız.) –

+0

@PaulBellora: Variabl için önerilen türler listesinde ikinci öneriyi seçen tuş dizisini kaçırdınız e. Ve bu Liste, ArrayList'in ilk olabileceği yer olmalı. – Bananeweizen

+0

@Bananeweizen - Haklısın bunu özledim - teşekkürler. +1 –

2

Kişisel yazım tarzınıza bağlı olarak, bu, @Ben Schulz'un cevabından esinlenen bir alternatiftir. genellikle

al = new ArrayList<String>(); 

gibi ilk atama yazarsanız o zaman hızlı bir düzeltme "Yerel değişken oluşturma" başlatmak için Ctrl+1 kullanabilirsiniz. Tab öğesinin seçilmesi, artık doğrudan List türünü seçtiğiniz tür seçimini açacaktır.

2

JDK 1.7, eşin sağındaki jenerik türünü belirtmeye gerek yoktur. Tercihi -> Java -?> Derleyici 1.6