gpt4 book ai didi

java - 试图将 Map 传递给我的 AsyncTask 但我得到一个 : Type safety: A generic array of Map is created for a varargs parameter

转载 作者:行者123 更新时间:2023-11-30 09:14:47 24 4
gpt4 key购买 nike

enter image description here

我正在做一些数据库操作,使用 Loader,填充一个 HashMap,然后用这个 HashMap 填充一个 TreeMap 用于排序目的,但是当我尝试将这个 TreeMap 传递给我的 AsyncTask 时,如下所示:

Sorted = new TreeMap<Date,String>(BD); 
new MagicCall().execute(Sorted);

但是编译器给我一个警告:类型安全:为可变参数创建了一个通用的 Map 数组

这是我的 AsyncTask 声明:

private class MagicCall extends AsyncTask<Map<Date,String>, String, String>

任何标题?

最佳答案

我用变通方法解决了这个问题。您可以按如下方式声明您的任务:

private class MagicCall extends AsyncTask<Void, String, String> {

// member
private Map<Date,String> arg = null;

// constructor
public MagicCall(final Map<Date,String> arg) {
this.arg = arg;
}

...

@Override
protected String doInBackground(final Void... args) {
// do stuff on this.arg instead of args
...
}
...
}

你可以这样调用它:

new MagicCall(Sorted).execute();

这样您就可以通过构造函数而不是通过 execute() 方法传递任务参数。

关于java - 试图将 Map 传递给我的 AsyncTask 但我得到一个 : Type safety: A generic array of Map<Date, String> is created for a varargs parameter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20286177/

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