java.lang.ClassCastException:[Ljava.lang.Object;无法转换为我的自定义模型 class

java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to my custom model class

大家好我对休眠查询结果和我的要求有点陌生我必须根据以下查询构建一个json结果我有我的模型class我将返回作为 json 的回应, query.getResult() returns me with object class 但类型转换对我不起作用是否有任何替代方法 this.I 想要使用我的自定义模型对象映射查询结果。

 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;
        }
    }

iter.next() returns 对象[],但您将其转换为 ReferFriend

您似乎需要从数组中提取数据才能构造对象。 我想到了几种方法:

  • ReferFriend 上创建构造函数,它接受一个 Object[] 作为参数。内部构造函数从该数组分配您的属性(在这种情况下,我建议声明您的属性 final

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

  • 有工厂

  • 流畅的构建方法

  • 其他

我得到这个 Now.I 将结果存储为对象数组并迭代 it.I 然后明确地将每个元素转换为我的 pojo class elements.The 我面临的问题之前是第一个参数,查询结果是大整数,我的 pojo 有 Int 字段。谢谢@rkosegi。