“純種Object對象”強制轉換


這是個非常蛋疼的問題

場景,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[],成功,如願,累死


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM