Я пытаюсь изучить Kotlin, преобразовав свою реализацию Java в Kotlin. В настоящее время я застрял в следующем сообщении об ошибке от Kotlin "неразрешенная ссылка: removeAt"
Вот мой код Kotlin:
private val mActivityTaskMap = mutableMapOf<String, List<CustomAsyncTask<*, *, *>>>()
fun removeTask(task: CustomAsyncTask<*, *, *>) {
for ((key, tasks) in mActivityTaskMap) {
for (i in tasks.indices) {
if (tasks[i] === task) {
tasks.removeAt(i) // <==== ERROR
break
}
}
if (tasks.size == 0) {
mActivityTaskMap.remove(key)
return
}
}
}
А вот оригинальная реализация Java:
private Map<String, List<CustomAsyncTask<?,?,?>>> mActivityTaskMap;
public void removeTask(CustomAsyncTask<?,?,?> task) {
for (Map.Entry<String, List<CustomAsyncTask<?,?,?>>> entry : mActivityTaskMap.entrySet()) {
List<CustomAsyncTask<?,?,?>> tasks = entry.getValue();
for (int i = 0; i < tasks.size(); i++) {
if (tasks.get(i) == task) {
tasks.remove(i);
break;
}
}
if (tasks.size() == 0) {
mActivityTaskMap.remove(entry.getKey());
return;
}
}
}
Как я могу удалить конкретную задачу? Должен ли я изменить объявление на:
private val mActivityTaskMap = mutableMapOf<String, MutableList<CustomAsyncTask<*, *, *>>>()