If I have a kotlin interface like this: ``` interf...
# codereview
j
If I have a kotlin interface like this:
Copy code
interface IncomingJsonMessageHandler {
    operator fun invoke(methodName: String, arg: String): String
}
Is this really the only good way to declare the constructor so that I can use it both for DI and as a lambda in tests is to do this goofyness:
Copy code
class IncomingRPCHandler
@Inject constructor(
    private val connectionProvider: ConnectionProvider,
    private val incomingJsonMessageHandler: IncomingJsonMessageHandler) {

    internal constructor(
        connectionProvider: ConnectionProvider,
        incomingJsonMessageHandler: (String, String) -> String) :
        this(connectionProvider, object : IncomingJsonMessageHandler {
            override fun invoke(methodName: String, arg: String): String = incomingJsonMessageHandler(methodName, arg)
        })
b
I'd go for a
typealias
then