這是個非常蛋疼的問題
場景,hibernate讀取數據
1
2
3
4
5
6
7
8
9
10
|
@Override
public
List<Object> getRankList(Date stime, Date etime,
int
type,
int
num) {
String hql =
"select p.content, sum(p.count) from ProfileJudgeCount p "
+
" where p.type = :type and p.date between :stime and :etime "
+
" group by p.content order by sum(p.count) desc limit 0,"
+ num;
return
sessionFactory.getCurrentSession().createQuery(hql).setInteger(
"type"
, type)
.setDate(
"stime"
, stime).setDate(
"etime"
, etime).list();
}
|
返回的是一個Object的list,在eclipse環境下調試時的現象如圖:
圖一:直接查看返回的list對象l,顯示如下
圖二:點擊具體的某個元素,顯示如下,能夠查看到里面的內容,一個字符串,一個數值,
圖三:跟蹤查看元素具體內容,是個數組,第一個元素是個字符串,第二個元素是個long型整數
正如圖三,toString函數,得到[Ljava.lang.Object;@9654f70類似內容
嘗試轉換其中的元素,使用getclass函數發現,類型為Java.lang.Object,這里只能強制轉換,以便於取出內容
1:自定義實體,實體屬性一個字符串,一個long型整數,轉換異常
2:發現類似一個JSONArray,轉換異常
3:轉換String[],轉換異常
4:轉換List,轉換異常
5:轉換Serializable,獲取byte數組,轉成字符串,能看見中文,不過存在亂碼
最后轉換Object[],成功,如願,累死