В моем приложении для Android:
suspend fun getTraidersList(): TransportResponse = withContext(Dispatchers.IO) {
// some common methods
try {
val response: Response<List<Trader>> = traderMonitorRestClient.getTraidersList()
// some common methods
} catch (e: Throwable) {
// some comon methods
}
}
suspend fun executeTraderOperation(traderOperation: Trader.Operation, base: String, quote: String): TransportResponse = withContext(Dispatchers.IO) {
// some common methods
try {
val response: Response<Void> = traderMonitorRestClient.executeTraderOperation(traderOperation.toString().toLowerCase(), base.trim(), quote.trim(), sender, key)
// some common methods
} catch (e: Throwable) {
// some comon methods
}
}
Как видите, у меня есть 2 метода, которые имеют много общих методов.Я хочу извлечь эти распространенные методы в отдельный метод.Я хочу передать функцию в качестве параметра my_common_method.Можно ли сделать что-то подобное в Kotlin?
suspend fun my_common_method(fun some_custom_function) {
// some common methods
try {
val response: Response<*> = some_custom_function()
// some common methods
} catch (e: Throwable) {
// some comon methods
}
}
Может быть, есть лучшее решение?
В getTraidersList()
функция some_custom_function
равна getTraidersList()
.А в executeTraderOperation
функция some_custom_function
равна executeTraderOperation
.Возможно ли это в Котлине?