为什么我在 map 方法上出现错误 'no instance of type'?

Why I get error 'no instance of type' on map method?

我有这个功能:

public <D> List<D> mapList(Object source, List<D> targetClass) {
    return targetClass
            .stream()
            .map(element -> modelMapper.map(source, element))
            .collect(Collectors.toList());
}

这一行:

    map(element -> modelMapper.map(source, element))
    

我有这个错误:

no instance of type variable r exists so that void conforms to r

知道为什么会出现上述错误以及如何解决吗?

类型与编译器错误提示的不匹配,返回的类型为空,将不会被收集。我猜想 modelMapper 上的 map 方法重载了,您也可以在第二个参数上传递 class 类型来解决这个问题。 像

这样的东西
Foo foo = modelMapper.map(map, Foo.class);

map 方法 Stream class return Stream.

<R> Stream<R> map(Function<? super T, ? extends R> mapper);

ModelMapper map 方法 returns void.

public void map(Object source, Object destination) {

所以报错。 “无效”无法流式传输。