Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.lang.ClassCastException:[Ljava.lang.Object;无法强制转换到我的自定义模型类_Object_Casting_Typecast Operator - Fatal编程技术网

java.lang.ClassCastException:[Ljava.lang.Object;无法强制转换到我的自定义模型类

java.lang.ClassCastException:[Ljava.lang.Object;无法强制转换到我的自定义模型类,object,casting,typecast-operator,Object,Casting,Typecast Operator,大家好我对hibernate查询结果有点陌生根据我的要求我必须从下面的查询中构建一个json结果我有我的模型类我将作为json响应返回query.getResult()使用对象类返回我,但类型转换不适用于我。是否有其他方法可以执行此操作。我想将查询结果映射到自定义模型对象 List<Object[]> result = query.getResultList(); ListIterator<Object[]> iter = result.lis

大家好我对hibernate查询结果有点陌生根据我的要求我必须从下面的查询中构建一个json结果我有我的模型类我将作为json响应返回query.getResult()使用对象类返回我,但类型转换不适用于我。是否有其他方法可以执行此操作。我想将查询结果映射到自定义模型对象

 List<Object[]>  result = query.getResultList();
            ListIterator<Object[]> iter = result.listIterator();
            List<ReferFriend> refer=new ArrayList<>();
            while (iter.hasNext()){
                @SuppressWarnings("unchecked")
                ReferFriend referFriend=  (ReferFriend) (Object)iter.next();
                refer.add(referFriend);
            }
            return refer;
        } catch (NoResultException e) {
            return null;
        }
    }
List result=query.getResultList();
ListIterator iter=result.ListIterator();
List REFERE=new ArrayList();
while(iter.hasNext()){
@抑制警告(“未选中”)
referefriend=(referefriend)(Object)iter.next();
添加(referefriend);
}
返回参考;
}捕获(noresulte异常){
返回null;
}
}
iter.next()
返回对象[],但您正在将其强制转换为
referefriend

看起来您需要从数组中提取数据来构造对象。 我想到了两种方法:

  • referefriend
    上创建构造函数,该构造函数将
    对象[]
    作为参数。在构造函数内部,从该数组分配属性(在这种情况下,我建议声明属性final

  • 使用默认(无参数)构造函数构造
    referefriend
    ,并使用setter从数组中分配属性值

  • 有工厂

  • Fluent-builder方法

  • 其他

iter.next()
返回对象[],但您正在将其强制转换为
referefriend

看起来您需要从数组中提取数据来构造对象。 我想到了两种方法:

  • referefriend
    上创建构造函数,该构造函数将
    对象[]
    作为参数。在构造函数内部,从该数组分配属性(在这种情况下,我建议声明属性final

  • 使用默认(无参数)构造函数构造
    referefriend
    ,并使用setter从数组中分配属性值

  • 有工厂

  • Fluent-builder方法

  • 其他


我现在得到了这个结果。我将结果存储为一个对象数组并对其进行迭代。然后,我将每个元素显式地强制转换为我的pojo类元素。我之前遇到的问题是第一个参数,查询结果是大整数,我的pojo有Int字段。谢谢@rkosegi。

我现在得到了这个结果。我将结果存储为一个对象数组,并使用它然后,我显式地将每个元素强制转换为我的pojo类元素。我之前遇到的问题是第一个参数,查询结果是大整数,我的pojo有Int字段。谢谢@rkosegi。

iter.next()
返回
Object[]
,但您正在将其强制转换为
referefriend
@rkosegi是的,我知道它给了我对象数组,我必须将它映射到我的自定义模型对象,这是我的问题,我该怎么做?
iter.next()
返回
object[]
,但您正在将其转换为
referefriend
@rkosegi是的,我知道它给了我对象数组,我必须将它映射到我的自定义模型对象,这是我的问题,我该怎么做?感谢已经尝试过的构造函数,它将对象[]作为参数,将尝试其他方法。干杯。感谢已经尝试过的构造函数,它将对象[]作为参数我们将尝试其他方法。干杯。