I would like to get some help to understand a Kotlin code snippet about functional interface used in Http4k org.http4k.core
package
typealias HttpHandler = (Request) -> Response
fun interface Filter : (HttpHandler) -> HttpHandler {
companion object
}
I don’t understand the Filter
interface, especially the companion object
part. A typical functional interface is like this
fun interface IntPredicate {
fun accept(i: Int): Boolean
}
And you can create a lambda isEven
val isEven = IntPredicate { it % 2 == 0 }
According to this simple example, it looks like the interface Filter
extends another interface (HttpHandler) -> HttpHandler
? Then it defines a function signature companion object
? Is this correct? What does the part companion object
really mean?