Я пытаюсь использовать интерфейсную функцию publi c (как я узнал об этом в Java) в Kotlin.
Для этого я создал свой метод
fun foo(input: List<String>, modifier1: Function<List<String>>? = null){
}
насколько я помню здесь, я должен быть в состоянии сделать modifier1.apply(input)
, но кажется, что это невозможно (хотя можно сделать modifier1.apply {input})
Читать дальше об этом я нашел это:
Kotlin: как передать функцию в качестве параметра другому?
Итак, я изменил свою сигнатуру метода следующим образом:
fun foo(input:String, modifier2: (List<String>) -> (List<String>){
}
Здесь я могу сделать modifier2(input)
, и я могу назвать foo таким образом
service.foo(input, ::myModifierFunction)
где
fun myModifierFunction(input:List<String>):List<String>{
//do something
return input
}
Пока это кажется возможным, но недопустимо иметь ссылку на функцию как обнуляемую, есть ли способ сделать это? или использовать функцию?