lambda中具有泛型返回类型的方法会导致编译错误

时间:2016-04-01 13:45:39

标签: java lambda java-8 java-stream

我有一个方法执行rest调用并返回传递给方法的类型的对象:

    private <T> T getForObject(String url, Class<T> returnClass) throws IOException {...}

在lambda表达式(下面)中使用此方法时,出现编译错误。

    List<Object> parentIds = upC.getIds().stream()
        .map(cId -> getForObject("/my/url/" + id, WrapperClass.class))
        .map(wrapper -> wrapper.getParentId())
        .collect(Collectors.toList());

错误:

Wrong 2nd argument type: found 'java.lang.Class<package.WrapperClass>',
required 'java.lang.Class<T>'.

很奇怪,因为我在lambda之外成功使用了这个方法:

getForObject("/other/url/" + objectId, OtherClass.class);

是不是可以在lambda中使用这种类型的方法?

0 个答案:

没有答案