0
我有這樣的代碼:爲什麼我不能將謂詞應用到java流過濾器?
@Override
public List<Device> getAvailableDevices(Predicate<Device> filter) {
return deviceRepository.getDevices()
.stream()
.filter(filter)
.collect(Collectors.toList());
}
,我得到這個錯誤:
Error:(55, 25) java: incompatible types: com.google.common.base.Predicate<com.m.automation.common.mobile.services.devices.dataModel.Device> cannot be converted to java.util.function.Predicate<? super com.m.automation.common.mobile.services.devices.dataModel.Device>
我怎樣才能解決這個問題?
這些是兩種不同的謂詞類型 – Whymarrh
您可能能夠使用Guava類型的方法引用(即'filter :: apply') – Whymarrh
您正在導入錯誤的'Predicate'類型:它應該是'java。 util.function.Predicate' – Tunaki