biraz pb var. Ben javacast Bir koleksiyona bir liste
Collection<T> collection = new Collection<T>(mylList);
yılında Koleksiyonuna bir listesi döküm istiyorum ama
biraz pb var. Ben javacast Bir koleksiyona bir liste
Collection<T> collection = new Collection<T>(mylList);
yılında Koleksiyonuna bir listesi döküm istiyorum ama
List<T>
zaten uygulayan tipi Collection örneğini Can Collection<T>
bu hata var - neden gerekir yeni bir tane oluştur
Collection<T> collection = myList;
Hata mesajı kesinlikle doğru - doğrudan bir arabirimi başlatamazsınız.
Collection<T> collection = new ArrayList<T>(myList);
Koleksiyon Yaptığımda Koleksiyon
@Mercer Aradığınız yöntemin imzası nedir?Bir liste, setMyCollection (Koleksiyon koleksiyonu) üzerinde çalışmalıdır, ancak örn. setMyCollection (Map collection) :) Ve eğer setMyCollection (List koleksiyonu) ise, o zaman bir liste ilan etmiş olmalısınız: List collection = new ArrayList(); (Bu işlemi kısaltmak için generikleri kaldırdım) – extraneon
Döküm bir new
ihtiyacı asla: varolan listesinin bir kopyasını oluşturmak isterseniz, aşağıdaki gibi bir şey kullanabilirsiniz
Collection<T> collection = myList;
Hatta dökme açık yapmazlar, Collection
, süper bir List
olduğundan, bu şekilde çalışır.
Bunu yaptığımda bir hatam var Tür uyuşmazlığı:
@Mercer: Burada java.util.List 'den bahsediyor musunuz? Bize biraz bağlam verebilir misiniz (örneğin,
@Mercer: Lütfen kısa ama * tam * örnek sağlayın. –
Kodunuzu bilmiyorsanız, sorunuzu yanıtlamak biraz zor, ancak burada yer alan tüm bilgilere dayanarak, Koleksiyon'un Koleksiyon olarak tanımlanan bir nesneyi geçen Collections.sort öğesini kullanmaya çalıştığınıza inanıyorum. bunu desteklemiyor.
İlk soru. İstemci neden bu kadar genel olarak tanımlandı? Neden bir Liste, Harita, Set ya da biraz daha spesifik bir şey değil?
İstemci Liste, Eşleme veya Küme olarak tanımlanmışsa, bu sorunu olmazdı, çünkü doğrudan Koleksiyonlar.sort (istemci) 'yi kullanabilirsiniz.
HTH
bir koleksiyon
Çözüm 1
List<Contact> CONTACTS = new ArrayList<String>();
// fill CONTACTS
Collection<Contact> c = CONTACTS;
Çözüm 2
private static final Collection<String> c = new ArrayList<String>(
Arrays.asList("a", "b", "c"));
Çözüm 3
listeyi dönüştürmek için birden solusions Orada varÇözüm 4
List<? extends Contact> col = new ArrayList<Contact>(CONTACTS);
Ben tavsiyem java temelinde hakkında bir kitap okumak için. Koleksiyon bir arayüz değil, bir sınıftır. Her ikisinin de farklı amaçlarını anlamak önemlidir. – extraneon
@extraneon +1 Aynı şeyi önermek üzereydi. Temelleri doğru bir şekilde anlamadan koleksiyonları kullanmak iyi bir fikir değildir. – helpermethod