Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1182092
  • 博文数量: 233
  • 博客积分: 6270
  • 博客等级: 准将
  • 技术积分: 1798
  • 用 户 组: 普通用户
  • 注册时间: 2010-01-26 08:32
文章分类

全部博文(233)

文章存档

2011年(31)

2010年(202)

我的朋友

分类: 嵌入式

2010-12-06 16:58:46

注:尽量使用HashMap,而不使用Hashtable

问题描述:定义了一个 Hashtable 类型的哈希表,想把它作为参数从A传递到B中,运行出错。

解决办法:使用HashMap”来定义参数,而不使用“Hashtable”,将以下代码中的“Hashtable”替换成“HashMap”,则工作正常。

代码如下:

发送端代码如下:

Intent wlIntent = new Intent();
Bundle bData = new Bundle();
bData.putSerializable("serial", hashtable);

wlIntent.setClass(A.this, B.class);
wlIntent.putExtras(bData);
startActivity(wlIntent);


接收端代码如下:

        try {
            Bundle bundle = getIntent().getExtras();
            Serializable data = bundle.getSerializable("serial");
            if (data != null) {
                table = (Hashtable<Long, String>)data;
            } else {
                return;
            }
        } catch (Exception e) {
            Log.v("test", e.toString());
        }


结果发现运行出错,提示错误“java.lang.ClassCastException: java.util.HashMap"
貌似在对 “data”进行强制类型转换时,android使用了“HashMap”来代替“Hashtable”进行了类型转换,导致出错。


阅读(4887) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~