İşte

2016-04-06 28 views
1

Çalışmıyor benim kodudur. İşte hatadır: -İşte

java.lang.String cannot be cast to [Ljava.lang.Object; 
+0

(dize sonucu: results) { – SeeuD1

+0

için lütfen deneyin. StringBuilder tarafından on yıldan fazla bir süre önce değiştirildiği için lütfen StringBuffer'ı kullanmayın. –

cevap

4

var,gibi görünüyor, List<Object[]> değil List<String> döndürür. Eğer bunun nedeni bildirilen istisna döngü giriyor gibi görünüyor Bana göre System.out.println(results ==null ? "empty", results.size());

gibi bir şey System.out.println(results); değiştirerek döndürülen liste içinde sonuç olduğunu doğrulayabilir

List<String> results = query.getResultList(); 
System.out.println(results); 
for (String result : results) { 
    System.out.println(result); 
} 
+0

. Bunu aldım .. Seçerken (m.id'i seç) dize döndürür ve iki veya daha fazlasını seçerken (m.id, m.message'i seç), nesneyi döndürür. Teşekkürler .. –

+0

Yöntemden bilgi için: sorgu yürütmesi, SQL sonucunun her satırında Object [] türüne (veya seçim listesinde yalnızca bir sütun varsa, Object türünün bir sonucu olarak) döndürülmesiyle sonuçlanır. – chrylis

1

yerine Do yanlış diziyi

yazdırıyorsanız:

for (Object[] result : results) { 
     for (Object obj : result) { 
     System.out.println(obj); 
    } 
} 

VEYA DAHA İYİ istisna sen dayanarak

for (Object[] result : results) { 
      Arrays.toString(result)); 
    } 
+0

Hayır .. Zaten her biri için girmediğini söyledim .. –

0

için kodunuzu değiştirin java.lang.String cannot be cast to [Ljava.lang.Object; ama Erna'nın yukarıdaki cevabında belirttiği gibi, geri dönen liste bir dizi Nesne yerine Dizelerin bir listesi olabilir.