Java 无法从流转换<;对象>;不为人知

Java 无法从流转换<;对象>;不为人知,java,eclipse,Java,Eclipse,在尝试使用MapfromLambdas功能时,我一直面临“无法将对象流转换为未知”的问题 代码段: List<Address> addresses = infoContactDetails.getAddresses().stream() .filter(address -> address.getAddressType().equalsIgnoreCase("Test")) .map(address -> a

在尝试使用MapfromLambdas功能时,我一直面临“无法将对象流转换为未知”的问题

代码段:

List<Address> addresses = infoContactDetails.getAddresses().stream()
                .filter(address -> address.getAddressType().equalsIgnoreCase("Test"))
                .map(address -> address.getAddressType().equalsIgnoreCase("Test")
                        ? null
                        : requestContactDetails.getAtThisAddressSince() ? null : address)
                .collect(Collectors.toList());
列表


此代码可以重构: 这一行是多余的,因为您已经在上面的一行中进行了此筛选:

.map(地址->地址.getAddressType().equalsIgnoreCase(“测试”)
这与
requestContactDetails.getAtThisAddressSince()
的情况相同,它不会在流中添加任何值,并且您在执行之前就知道它的值。因此,最后它可以这样编写:

List addresses=requestContactDetails.getAtThisAddressSince()
?新建ArrayList():
infoContactDetails.getAddresses().stream()
.filter(地址->地址.getAddressType().equalsIgnoreCase(“测试”))
.collect(Collectors.toList());

这对我来说编译得很好。显然你做错了什么。另外,不要映射null,你的gunna过得不好。我映射null只是为了让发布它看起来更简单……你使用的是哪个版本的JDK??Java 8。什么是infoContactDetails?我打赌这是一个对象列表。更新你的JDK 8 btw,更新到JDK 8 update 200+。什么是requestContactDetails?问题是STS版本。升级后就解决了