Я использую приведенный ниже код для проверки чего-либо, и я получаю две ошибки в строке ".map (f => f.getBlacklistedAccounts.contains (accountID))", не знаю, что это значит, может кто-нибудь помочь мне с этим? Спасибо.
Первый из них
argument expression's type is not compatible with formal parameter type;
no type parameters for method map: (x$1: java.util.function.Function[_ >: my.util.BlacklistRule, _ <: U])java.util.Optional[U] exist so that it can be applied to arguments (java.util.function.Function[my.util.BlacklistRule,Boolean])
found : java.util.function.Function[my.util.BlacklistRule,Boolean]
[scalac-2.12] required: java.util.function.Function[_ >: my.util.BlacklistRule, _ <: ?U]
[scalac-2.12] Note: my.util.BlacklistRule <: Any, but Java-defined trait Function is invariant in type T.
[scalac-2.12] You may wish to investigate a wildcard type such as `_ <: Any`. (SLS 3.2.10)
[scalac-2.12] .map(f => f.getBlacklistedAccounts.contains(accountID))
[scalac-2.12] ^
Второй
error: type mismatch;
[scalac-2.12] found : java.util.function.Function[my.util.BlacklistRule,Boolean]
[scalac-2.12] required: java.util.function.Function[_ >: my.util.BlacklistRule, _ <: U]
[scalac-2.12] .map(f => f.getBlacklistedAccounts.contains(accountID))
мой код
def isAccountBlacklistForAction(ruleBlacklist: RuleBlacklist, accountID: String, rule: String): Boolean ={
ruleBlacklist.getRules
.stream
.filter(a => a.getRuleName.equals(rule))
.findFirst()
.map(f => f.getBlacklistedAccounts.contains(accountID))
.orElse(true)
}