Kotlin Coding Task
Задание: Данный код не собирается. Найди в чем причина и исправь ее
interface Order
class LocalOrder: Order
class InternationalOrder: Order
class OrdersInteractor {
val activeOrders = mutableListOf<Order>()
fun <T : Order> returnAllOfType(onError: () -> Unit) {
val targetList = activeOrders.filterIsInstanceT::class.java(T::class.java)
returnMoney(targetList, onError)
}
private fun returnMoney(orders: List<Order>, onError: () -> Unit) {
try {
processReturn(orders)
activeOrders.removeAll(orders)
} catch (e: Exception) {
onError()
}
}
private fun processReturn(orders: List<Order>) { /* do return or throw */}
}
fun main() {
val interactor = OrdersInteractor()
interactor.activeOrders.addAll(
listOf(
LocalOrder(),
InternationalOrder(),
LocalOrder(),
InternationalOrder()
)
)
interactor.returnAllOfType<LocalOrder> {
println("ERROR!")
}
}