jlleitschuh
06/05/2017, 9:11 PMinterface 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:
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)
})
benleggiero
06/11/2017, 7:46 PMtypealias
then