Java 8 使用default关键字遇到的问题

        由于有部分模块是没有删除功能的,例如订单类(系统自动生成的订单,不能删除)。所以在设计BaseService和BaseDAO(BaseMapper)时,使用了Java 8 的default关键字对删除方法提供默认实现。

        测试包含删除功能的模块时(例如基础数据,接口实现类中重写了delete方法),遇到了如下问题:

        首先猜测是不能在默认实现中抛异常,于是修改代码。

        再次测试,发现执行了BaseDAO的默认实现方法。

        最终发现问题原因:BaseDAO并没有实现类,所以执行了BaseDAO的默认实现。

        原来是自己对MyBatis的理解有误,该补补MyBatis的知识了o(╯□╰)o

猜你喜欢

转载自www.cnblogs.com/KingJames/p/10907707.html
今日推荐