我有以下代码。 "可保护"是一个界面。我的编译器给出以下错误:"不兼容的类型:对象无法转换为Collection" 当我删除.filter行时,一切正常。为什么编译器在这里松开我的类型? 谢谢, 汉纳斯
Collection<Protectable> requiredItems prefs.getConnectedProtectables(fuzDoc)
.stream()
.filter(protectable -> !protectable.itemVisibleForCurrentUser(fuzDoc))
.collect(Collectors.toList());
变量prefs
实现HasConnectedRights
,其实现如下:
public interface HasConnectedRights {
public Collection<Protectable> getConnectedProtectables(FuzDocument doc);
}
接口Protectable
声明方法itemVisibleForCurrentUser
,如下所示:
default public boolean itemVisibleForCurrentUser(Docker<FuzDocument> doc) {
User user = UserCtrl.getCurrentUser(doc.getDoc());
return user == null || itemVisibleFor(user);
}