文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

报错:Java ClassCastException: xxx cannot be cast to xxx are in unnamed module of loader ‘app‘

2023-09-21 22:20

关注

这就是典型的类型转换问题,出现这个错误就说明类型转换有误,大概是出现在domain层,vo层和bo层之间的混乱

1:首先在mapper层也就是dao层,我们记住我们一定是用domain实体类去接收查询出来的参数

2:然后我们在serviceImpl层接收到后,我们要将查询出来的数据赋值给vo层返回给前端,这里使用BeanCopyUtils将mapper层查询出来的数据赋给vo层

3:BeanCopyUtils

package com.zhi.common.utils;import cn.hutool.core.collection.CollUtil;import cn.hutool.core.lang.SimpleCache;import cn.hutool.core.map.MapUtil;import cn.hutool.core.util.ObjectUtil;import cn.hutool.core.util.ReflectUtil;import cn.hutool.core.util.StrUtil;import lombok.AccessLevel;import lombok.NoArgsConstructor;import org.springframework.cglib.beans.BeanCopier;import org.springframework.cglib.beans.BeanMap;import org.springframework.cglib.core.Converter;import java.util.List;import java.util.Map;@NoArgsConstructor(access = AccessLevel.PRIVATE)public class BeanCopyUtils {        public static <T, V> V copy(T source, Class<V> desc) {        if (ObjectUtil.isNull(source)) {            return null;        }        if (ObjectUtil.isNull(desc)) {            return null;        }        final V target = ReflectUtil.newInstanceIfPossible(desc);        return copy(source, target);    }        public static <T, V> V copy(T source, V desc) {        if (ObjectUtil.isNull(source)) {            return null;        }        if (ObjectUtil.isNull(desc)) {            return null;        }        BeanCopier beanCopier = BeanCopierCache.INSTANCE.get(source.getClass(), desc.getClass(), null);        beanCopier.copy(source, desc, null);        return desc;    }        public static <T, V> List<V> copyList(List<T> sourceList, Class<V> desc) {        if (ObjectUtil.isNull(sourceList)) {            return null;        }        if (CollUtil.isEmpty(sourceList)) {            return CollUtil.newArrayList();        }        return StreamUtils.toList(sourceList, source -> {            V target = ReflectUtil.newInstanceIfPossible(desc);            copy(source, target);            return target;        });    }        @SuppressWarnings("unchecked")    public static <T> Map<String, Object> copyToMap(T bean) {        if (ObjectUtil.isNull(bean)) {            return null;        }        return BeanMap.create(bean);    }        public static <T> T mapToBean(Map<String, Object> map, Class<T> beanClass) {        if (MapUtil.isEmpty(map)) {            return null;        }        if (ObjectUtil.isNull(beanClass)) {            return null;        }        T bean = ReflectUtil.newInstanceIfPossible(beanClass);        return mapToBean(map, bean);    }        public static <T> T mapToBean(Map<String, Object> map, T bean) {        if (MapUtil.isEmpty(map)) {            return null;        }        if (ObjectUtil.isNull(bean)) {            return null;        }        BeanMap.create(bean).putAll(map);        return bean;    }        public enum BeanCopierCache {                INSTANCE;        private final SimpleCache<String, BeanCopier> cache = new SimpleCache<>();                public BeanCopier get(Class<?> srcClass, Class<?> targetClass, Converter converter) {            final String key = genKey(srcClass, targetClass, converter);            return cache.get(key, () -> BeanCopier.create(srcClass, targetClass, converter != null));        }                private String genKey(Class<?> srcClass, Class<?> targetClass, Converter converter) {            final StringBuilder key = StrUtil.builder()                .append(srcClass.getName()).append('#').append(targetClass.getName());            if(null != converter){                key.append('#').append(converter.getClass().getName());            }            return key.toString();        }    }}

出现上述错误大概是在想要get到mapper层查询数据的List<实体类>时候出现了错误,一定要记住mapper层查询出来的是对应实体层的,而不是vo层

来源地址:https://blog.csdn.net/justleavel/article/details/128613595

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯