gpt4 book ai didi

android - putExtra treeMap 返回 HashMap cannot be cast to TreeMap android

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:06:06 25 4
gpt4 key购买 nike

我需要你的帮助,我不明白发生了什么?

我试图在两个 Activity 之间发送一个 TreeMap,代码是这样的:

class One extends Activity{
public void send(){
Intent intent = new Intent(One.this, Two.class);
TreeMap<String, String> map = new TreeMap<String, String>();
map.put("1","something");
intent.putExtra("map", map);
startActivity(intent);
finish();
}
}

class Two extends Activity{
public void get(){
(TreeMap<String, String>) getIntent().getExtras().get("map");//Here is the problem
}
}

这返回给我 HashMap 无法转换为 TreeMap。什么

最佳答案

作为@Jave 建议的替代方案,如果您确实需要将数据结构作为TreeMap,只需使用将另一个 map 作为数据源的适当构造函数。所以在接收端 (Two) 做类似的事情:

public class Two extends Activity {
@Override public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TreeMap<String, String> map = new TreeMap<String, String>((Map<String, String>) getIntent().getExtras().get("map"));
}
}

但是,根据您的项目,您可能不必担心确切的 Map 实现。因此,您可以转换为 Map 接口(interface):

public class Two extends Activity {
@Override public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Map<String, String> map = (Map<String, String>) getIntent().getExtras().get("map");
}
}

关于android - putExtra treeMap 返回 HashMap cannot be cast to TreeMap android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13960153/

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