“纯种Object对象”强制转换

这是个非常蛋疼的问题

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

时间: 2024-10-14 17:17:11

“纯种Object对象”强制转换的相关文章

php 对象强制转换成数组

$result=(array)$receive[0]; //对象强制转换成数组 foreach ($result as $key => $value) { $newresult[$key]=array((array)$value); } var_dump($newresult); exit();

c++中的强制转换

一.C语言的强制转换1.1 隐性转换 不同数据类型之间赋值和运算,函数调用传递参数等等,由编译器完成        int        nTmp = 10;        short    sTmp = nTmp; //这个时候就需要注意转换时数据是否溢出(大字节转小字节)1.2 显性转换 在变量的前面加上(Type)进行显性转换,如:        class Test;        Test *test;        T* obj = (T*)test;//将对象强制转换成T二.C++

atitit.XML类库选型及object 对象bean 跟json转换方案

atitit.XML类库选型及object 对象bean 跟json转换方案 1. XML类库可以分成2大类.标准的.这些类库通常接口和实现都是分开的 1 2. 常见的xml方面的方法 2 2.1. xml解析 2 2.2. bean与xml互相转换 2 2.3. json与xml的互相转换 2 3. 大名鼎鼎的 DOM  绿色环保的 SAX 默默无闻的 Digester 2 3.1. 默默无闻的 Digester:XML 的 JavaBean 化 2 4. Digester 解析 XML 3

无法将类型“System.Nullable`1”强制转换为类型“System.Object”。LINQ to Entities 仅支持强制转换 EDM 基元或枚举类型。

在一个项目中使用LINQ和EF时出现了题目所示的异常,搜索了很多资料都找不到解决办法,主要是因为EF方面的知识欠缺. 先将情况记录如下,以供以后参考. 查询主要设计两张表,由外键关联: 在进行下面的查询时,出现异常:无法将类型“System.Nullable`1”强制转换为类型“System.Object”.LINQ to Entities 仅支持强制转换 EDM 基元或枚举类型. public ActionResult GetIpSegments() { //List<Ipsegment>

php如何遍历多维的stdClass Object 对象,php的转换成数组的函数只能转换外面一丛数组

php如何遍历多维的stdClass Object 对象,php的转换成数组的函数只能转换外面一丛数组 (2012-09-10 19:58:49) 标签: 杂谈 分类: 网页基础知识 function objtoarr($obj){$ret = array();foreach($obj as $key =>$value){if(gettype($value) == 'array' || gettype($value) == 'object'){$ret[$key] = objtoarr($val

C语言 —— 打印不同对象的字节表示 ( 对int*强制转换成unsigned char*的理解 )

此文章参考<深入理解计算机系统>P31. 先看如下代码:  12345的十六进制表示为:0x00003039 1 #include <stdio.h> 2 3 int main() 4 { 5 int a = 12345; 6 char *q = (char *)(&a); 7 for(int i = 0; i < sizeof(a); ++i) 8 printf("%.2x ", q[i]); 9 return 0; 10 } 输出为: a的地址

C++ 强制转换

C++中有两种风格的类型转换,一种C风格的,一种C++风格的.C风格:int a = int(2.33); C++新增了四种cast运算符,static_cast<type>(var), const_cast<tyep>(var), reinterpret_cast<type>(var), dynamic_cast<type>(var)static_cast<type>(var)用来替换C风格的类型转换.比如上面的转换可以写成:int a = s

PHP强制转换类型

获取数据类型 : 1.如果想查看某个表达式的值和类型,用var_dump(). 2.如果只是想得到一个易读懂的类型的表达方式用于调试,用 gettype().3.要查看某个类型,不要用 gettype(),而用is_type() 函数. ■字符串转换为数值 当一个字符串被当作数字来求值时,根据以下规则来决定结果的类型和值. 如果包括“.”,“e”或“E”其中任何一个字符的话,字符串被当作 float 来求值.否则就被当作整数. 该值由字符串最前面的部分决定.如果字符串以合法的数字数据开始,就用该

【读书笔记】C#高级编程 第七章 运算符和类型强制转换

(一)运算符 类别 运算符 算术运算符 + - * / % 逻辑运算符 & | ^ ~ && || ! 字符串连接运算符 + 增量和减量运算符 ++ -- 移位运算符 << >> 比较运算符 == != < > <= >= 赋值运算符 = += -= *= /= %= &= |= ^= <<= >>= 成员访问运算符(用于对象和结构) . 索引运算符(用于数组和索引器) [] 类型转换运算符 () 条件