码迷,mamicode.com
首页 > 其他好文 > 详细

“纯种Object对象”强制转换

时间:2016-06-02 22:05:16      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:

这是个非常蛋疼的问题

场景,hibernate读取数据

 @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[],成功,如愿,累死

“纯种Object对象”强制转换

标签:

原文地址:http://www.cnblogs.com/yolotproc/p/5554381.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!