当前使用版本(必填,否则不予处理)

3.3.2 查看最新版本3.4.2还是这样

该问题是如何引起的?(确定最新版也有问题再提!!!)

改进

重现步骤(如果有就写完整)

com.baomidou.mybatisplus.extension.service 下 IService 接口里

default < V > List< V > listObjs(Wrapper< T > queryWrapper, Function<? super Object, V> mapper) { return getBaseMapper().selectObjs(queryWrapper).stream().filter(Objects::nonNull).map(mapper).collect(Collectors.toList()); }

? super Object 应该改为 ? super T 这样会比较好些

报错信息

这样手写mapper不用强转

Comment From: miemieYaho

T 是 entity,是不会返回entity的

Comment From: wdd15359180132

T 是 entity,是不会返回entity的

T的确是不会返回的, Function<? super Object, V> 是用来把实体转成 V类的但是接口 用的是? super Object 就会要强制转换 转成实体才能用

Comment From: wdd15359180132

T 是 entity,是不会返回entity的 就比如这样 List integers = cmContactService.listObjs(new QueryWrapper<>(), (u) -> ((CmContact) u).getContactNo());

Comment From: wdd15359180132

T 是 entity,是不会返回entity的

下面这样就会报错 List integers = cmContactService.listObjs(new QueryWrapper<>(), (u) -> u.getContactNo())

Comment From: MrRohwei

T 是 entity,是不会返回entity的

下面这样就会报错 List integers = cmContactService.listObjs(new QueryWrapper<>(), (u) -> u.getContactNo())

人家就不是返回的整个实体对象,仔细看一下源码,里面只返回查询的第一个字段。我也被这个坑了。