dave08
04/25/2021, 12:57 PM: Any
in generics to prevent nulls?interface UseCase<in Request : Any, out Response : Any> {
suspend fun execute(request: Request): Response
}
and in certain cases I need the Response to be nullable, and in others not. How can I implement such a Spy:
class UseCaseSpy<Request : Any, Response>(
private val returnIfNoResponse: (suspend (Request) -> Response)? = null,
private val allowNullResponse: Boolean = false
): UseCase<Request, Response> {
var request: Request? = null
var responseToReturn: Response? = null
override suspend fun execute(request: Request): Response {
this.request = request
val response = responseToReturn ?: returnIfNoResponse?.invoke(request)
if (response == null && !allowNullResponse)
error("Either responseToReturn or returnIfNoResponse needs to be provided.")
return response
}
}
execute
needs to return Response?
whether my actual type is nullable or not... so it just doesn't compileYoussef Shoaib [MOD]
04/25/2021, 1:38 PMinterface UseCase<in Request : Any, out Response : Any> {
suspend fun execute(request: Request): Response?
}
Then it should all work fine hopefullydave08
04/25/2021, 1:48 PMdave08
04/25/2021, 1:49 PMResponse
being returned from exectute to be Response?
dave08
04/25/2021, 1:59 PMdave08
04/25/2021, 2:00 PMdave08
04/25/2021, 2:02 PM: Any
from the interface works... just for the UseCaseSpy
I'm forced to return Response?
...