sun.reflect.generics.reflectiveObjects.TypeVariableImpl cannot be cast to java.lang.Class
1.首先,问题出现的点是在泛型
我出现问题的原因是,和泛型有关系,要调整泛型
2.我把问题出现的过程描述一哈子
1.基础类
@tk.mybatis.mapper.annotation.RegisterMapper
public interface BaseModelMapper<T extends BaseModel> extends Mapper<T>,BaseExtraMapper<T> {
}
2.在基础mapper上面进行封装
public interface DataSyncMapper<T extends BaseModel> extends BaseModelMapper<T>{
public List<T> selectList();
}
3.service层中调用
@Transactional
public class DataSyncServiceImpl<T extends BaseModel,Mapper extends DataSyncMapper >
extends BaseModelServiceImpl<T>
implements IDataSyncService<T,Mapper> {
}
4.然后就很尴尬的出现了上面的问题
但是可以看到,这个也是因为Mapper泛型的原因,继承的Mapper再进行泛型,就会有错误。但是深层次的问题,没有研究也不知道
3.我的解决过程
1.把基础的Mapper封装去掉,单独一个Mapper
public interface DataSyncMapper<T extends BaseModel>{
public List<T> selectList(); }
2.service实现的泛型,调整约束
public class DataSyncServiceImpl<T extends BaseModel,Mapper extends DataSyncMapper & BaseModelMapper>
extends BaseModelServiceImpl<T>
implements IDataSyncService<T> {
}
将约束条件变成同时满足继承DataSyncMapper,BaseModelMapper;
4.总结一下
问题的根本原因其实也没解析出来,但是知道,这个是子接口,父接口的泛型约束问题;可以通过调整泛型解决!
后续,进一步研究一下,再后补。
sun.reflect.generics.reflectiveObjects.TypeVariableImpl cannot be cast to java.lang.Class的更多相关文章
- 利用泛型抽取Dao层,加事务注解问题(java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType)
想利用泛型抽取BaseDao层,简化操作时出现故障: @Transactional这个注解是能够继承的.于是就想写在抽取的BaseDao层上,让实现的类能够不用写@Transactional,就可开启 ...
- TreeMap cannot be cast to java.lang.Comparable
/** * Constructs a new, empty tree map, using the natural ordering of its * keys. All keys inserted ...
- Mybatis的失误填坑-java.lang.Integer cannot be cast to java.lang.String
Mybatis的CRUD小Demo 为方便查看每次的增删改结果,封装了查询,用来显示数据库的记录: public static void showInfo(){ SqlSession session ...
- cannot be cast to java.lang.Comparable
Exception in thread "main" java.lang.ClassCastException: com.myradio.People cannot be cast ...
- mysql连接报java.math.BigInteger cannot be cast to java.lang.Long异常
使用hibernate出现以下错误 java.sql.SQLException: java.lang.ClassCastException: java.math.BigInteger cannot b ...
- java.lang.ClassCastException: java.util.HashMap cannot be cast to java.lang.String
问题背景:从前端传来的json字符串中取某些值,拼接成json格式入参调外部接口. 报如下错: java.lang.ClassCastException: java.util.HashMap cann ...
- java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
1.错误描写叙述 java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String service. ...
- Spring boot启动时报 java.sql.SQLException: java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long错误
Spring boot启动时报 java.sql.SQLException: java.lang.ClassCastException: java.math.BigInteger cannot be ...
- 初学MyBatis(踩坑)Error querying database. Cause: java.sql.SQLException: java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long
最近在学习Mybatis,代码全部根据教程写好了,一运行结果报了一个错误,主要错误内容: Caused by: org.apache.ibatis.exceptions.PersistenceExce ...
随机推荐
- 启动appium server时打印日志时间
在调试脚本的时候想看查找元素和执行命令花了多少时间,我们可以在启动appium server的时候加上启动参数,实现我们的需求. 1)输入:appium h,可以查看appium提供的启动参数有哪些. ...
- springboot实现定时任务,异步操作,统一结果返回,全局异常处理,拦截器及事务处理
本文是作者原创,版权归作者所有.若要转载,请注明出处. 本文都是springboot的常用和实用功能,话不多说开始吧 定时任务 1.启动类开启注解 @EnableScheduling //开启基于注解 ...
- Dedecms升级php版本{dede:field.body/}不解析,文章内容不显示
Dedecms升级php7后发布文章后,发现前端显示的文章内容都是空白,只能显示标题.关键词.描述等. 第一种方法: 把{dede:field.body /}删除,使用 下面的sql 标签代码替换: ...
- 动作函数-web_submit_data
web_submit_data("login.pl", "Action=http://127.0.0.1:1080/WebTours/login.pl", &q ...
- Android学习笔记长按事件的处理
常见的长按事件 代码示例: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedIns ...
- redis概要学习
redis 概要学习 redis简介 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库. Redis 与其他 key - value 缓存产品有以下三个特点: Re ...
- < react router>: (路由)
< react router> (路由): 思维导图: Atrial 文件夹下的index.js 文件内容: import React, { Component } from 'rea ...
- 微信小程序for循环遍历
wxml: <block wx:for="{{data}}" wx:for-item="data"> & ...
- xutils工具上传日志文件--后台服务器的搭建
在上一篇文章中使用xutils将手机上保存的日志上传到后台服务器中,现在我们来讲后台服务器是如何搭建的 后台服务器采用jsp+sevlet+mysql的框架 首先讲mysql数据库的表的建立 在fil ...
- redis基础二----操作set数据类型
set集合是无序的,不能存在重复元素 bbb吃重复元素,是不能添加成功的 2 接下来分析zset,是有序的,你在添加的时候要指定元素的序列号 上面的 3 4 5 6 就是指定的元素的序列号 withs ...