返回顶部
首页 > 资讯 > 后端开发 > JAVA >报错:Java ClassCastException: xxx cannot be cast to xxx are in unnamed module of loader ‘app‘
  • 879
分享到

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

javamybatis开发语言 2023-09-21 22:09:02 879人浏览 薄情痞子
摘要

这就是典型的类型转换问题,出现这个错误就说明类型转换有误,大概是出现在domain层,vo层和bo层之间的混乱 1:首先在mapper层也就是dao层,我们记住我们一定是用domain实体类去接收查询

这就是典型的类型转换问题,出现这个错误就说明类型转换有误,大概是出现在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

--结束END--

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

本文链接: https://lsjlt.com/news/414609.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作