gpt4 book ai didi

Kotlin Unresolved reference : removeAt

转载 作者:行者123 更新时间:2023-12-02 13:20:18 25 4
gpt4 key购买 nike

我尝试通过将我的 Java 实现转换为 Kotlin 来学习 Kotlin。目前我停留在 Kotlin 的以下错误消息“ Unresolved 引用: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<*, *, *>>>()

最佳答案

您尝试编辑的列表在 map 中是不可变的。使其可变:

private Map<String, MutableList<CustomAsyncTask<?,?,?>>> mActivityTaskMap;

关于Kotlin Unresolved reference : removeAt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58317946/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com