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的更多相关文章

  1. 利用泛型抽取Dao层,加事务注解问题(java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType)

    想利用泛型抽取BaseDao层,简化操作时出现故障: @Transactional这个注解是能够继承的.于是就想写在抽取的BaseDao层上,让实现的类能够不用写@Transactional,就可开启 ...

  2. TreeMap cannot be cast to java.lang.Comparable

    /** * Constructs a new, empty tree map, using the natural ordering of its * keys. All keys inserted ...

  3. Mybatis的失误填坑-java.lang.Integer cannot be cast to java.lang.String

    Mybatis的CRUD小Demo 为方便查看每次的增删改结果,封装了查询,用来显示数据库的记录: public static void showInfo(){ SqlSession session ...

  4. cannot be cast to java.lang.Comparable

    Exception in thread "main" java.lang.ClassCastException: com.myradio.People cannot be cast ...

  5. mysql连接报java.math.BigInteger cannot be cast to java.lang.Long异常

    使用hibernate出现以下错误 java.sql.SQLException: java.lang.ClassCastException: java.math.BigInteger cannot b ...

  6. java.lang.ClassCastException: java.util.HashMap cannot be cast to java.lang.String

    问题背景:从前端传来的json字符串中取某些值,拼接成json格式入参调外部接口. 报如下错: java.lang.ClassCastException: java.util.HashMap cann ...

  7. 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. ...

  8. 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 ...

  9. 初学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 ...

随机推荐

  1. Java实现第九届蓝桥杯倍数问题

    倍数问题 题目描述 [题目描述] 众所周知,小葱同学擅长计算,尤其擅长计算一个数是否是另外一个数的倍数.但小葱只擅长两个数的情况,当有很多个数之后就会比较苦恼.现在小葱给了你 n 个数,希望你从这 n ...

  2. ElasticSearch系列(二):ElasticSearch Head、Kibana、Elasticsearch-Analysis-Ik安装、使用

    1.ElasticSearch Head使用 扩展程序安装插件:ElasticSearch github地址:https://github.com/mobz/elasticsearch-head/ 运 ...

  3. PyQt5 对话框示例

    import sys from PyQt5.QtWidgets import * from PyQt5.QtGui import * class Example(QMainWindow): def _ ...

  4. 学而思Java开发岗位面试

    去学而思培优面试了. 有四道笔试题,后面会整理做法. 1.给一个文件夹,用递归的方式统计这个目录及其子目录不同文件类型的个数. 如,输出:jpg:几个文件,txt:几个文件... 2.不适用加减乘除, ...

  5. win10系统无法删除文件的解决方法

    方法/步骤 1:首先进入不能删除的文件所在的文件夹 2:右键单击此文件夹,选择授予访问权限 3:在授权界面选择删除权限 4:在删除权限中点击更改共享权限 5:我们选择administrator级别,点 ...

  6. Postgresql DB安装和使用问题记录

    2.选择语言后提示: Error: There has been an error. Please put SELinux in permissive mode and then run instal ...

  7. Python多线程 - threading

    目录 1. GIL 2. API 3. 创建子线程 4. 线程同步 4.1. 有了GIL,是否还需要同步? 4.1.1. 死锁 4.1.2. 竞争条件 4.1.3. GIL去哪儿了 4.2. Lock ...

  8. mysql字符串类型(char,varchar)

    原文链接:https://blog.csdn.net/puqutogether/article/details/45648879 MySQL中的字符串有两个常用的类型:char和varchar,二者各 ...

  9. sourcetree 安装破解注册方法

    1.下载sourcetree安装包 2.点击安装到下图步骤 3.在网盘中下载accounts.json  文件,( 链接:https://pan.baidu.com/s/1tJd_xCh-B-oOwd ...

  10. android中的逐帧动画

    在android中实现动画最简单的一种方式就是使用逐帧动画(AnimationDrawable).逐帧动画的原理同最古老的动画机制是一样的,通过快速的播放一组变化微小的图片,在人眼的视差时间下,达到一 ...