Tentei escrever o seguinte código:
val s: Function<String, String> = { s -> s + s }
Ele compila com o seguinte erro:
Type mismatch: inferred type is (???) -> [Error type: Return type for function cannot be resolved] but Function<String, String> was expected
Cannot infer a type for this parameter. Please specify it explicitly.
Qual é a maneira correta de atribuir Kotlin
lambda à Java
função?
O problema que você está enfrentando é porque a inferência de tipo do Kotlin não funciona conforme o esperado neste contexto específico ao usar lambdas com interfaces funcionais Java.
Para resolver isso, você pode declarar explicitamente o tipo lambda usando a
Function
interface em seu código:Tente usar
Function<String, String>
o exemplo completo: