2016-03-31 16 views
0

,ayrı ayrı iki sorgu çalıştırmak ve kod aşağıda gibi tek listede eklemek zorunda

List<BojaClass> results1 = new ArrayList<>(); 
    List<BojaClass> results2 = new ArrayList<>(); 
    String sql1 = "my query 1"; 
    String sql2 = "my query 2"; 
    results1 = jdbcTemplate.query(sql1, new Object[]{1,2}, new BeanPropertyRowMapper<BojaClass>(BojaClass.class)); 
    results2 = jdbcTemplate.query(sql2, new Object[]{1,2}, new BeanPropertyRowMapper<BojaClass>(BojaClass.class)); 
    results1.add((BojaClass) results2); 

Ama istisna "java.lang.ClassCastException alıyorum: java.util.ArrayList, com.myclass.BojaClass için "ve results2 değerlerine eklenmeyen sonuçlar2 değerleri için kullanılamaz."

Neredeyim yanılıyor?

+1

results1.addAll – Tokazio

+1

'results1.addAll (results2) düzeltmek;' –

cevap

2

List arabiriminin add yöntemini kullanarak, yalnızca listeye yalnızca tek bir öğe ekler. Başka bir liste eklenecek olan addAll yöntemini kullanın.

boolean java.util.List.add (E e)

bu listede (isteğe bağlı çalışma) sonuna belirtilen eleman ekler.

boolean java.util.List.addAll (Koleksiyon c)

Belirtilen koleksiyon en tarafından döndürülen o sırayla, bu listenin sonuna belirtilen koleksiyonundaki tüm öğeleri ekler Yineleyici (isteğe bağlı çalışma). İşlem işleminde işlem değiştirilirse, bu işlemin davranışı tanımlanmamıştır. (Belirtilen koleksiyonu bu liste ise bu meydana unutmayın ve boş olmayan bu.) Sizin döküm hata

+1

Ve dökümünü kaldırın: (BojaClass) results2 –

0

yok:

results1.add((BojaClass) results2); 

Üstü şekilde değiştirilmelidir:

results1.add((List<BojaClass>) results2); 

Umut bu Sorununuz

İlgili konular