麻烦看下,为什么会报错。

MK125851615 2011-11-20 11:02:28

package No2;
import java.util.*;
import java.io.*;
public class Test {
public static void main(String[] args)throws IOException
{
HashMap hm=new HashMap();
Child ch1=new Child("SN02312","谢谢");
Child ch2=new Child("SN0232314124122","小小");
hm.put("SN02312","谢谢");
hm.put("SN0232314124122","小小");
//遍历1
/*
if(hm.containsKey("SN02312"))
{
System.out.println("有");
Child temp=(Child)hm.get("SN02312");
System.out.println("name="temp.getName+" "+"num="+temp.getNum);
}else
{
System.out.println("没有");
}

}
}
class Child
{
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getNum() {
return num;
}
public void setNum(String num) {
this.num = num;
}
String name;
String num;
public Child(String num,String name)
{
this.name=name;
this.num=num;
}
}





程序报错:
Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot be cast to No2.Child
at No2.Test.main(Test.java:28)


为什么这里不能转成String ?麻烦给个比较详细的解答,查了好久...
...全文
68 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
五哥 2011-11-20
  • 打赏
  • 举报
回复
Child temp=(Child)hm.get("SN02312"); --得到的是String ,不能转为Child对象

CherryMs 2011-11-20
  • 打赏
  • 举报
回复
嗯 2楼正解
- -楼主贴出的代码中声明的ch1 ch2根本没使用……
Net_Flasher 2011-11-20
  • 打赏
  • 举报
回复
Child temp=(Child)hm.get("SN02312"); 这个可以吗?????
hm.get("SN02312")得到的是一个字符串,怎么会强制类型转换成Child呢
china98_2001 2011-11-20
  • 打赏
  • 举报
回复
你这里的value是字符串:谢谢/小小
hm.put("SN02312","谢谢");
hm.put("SN0232314124122","小小");
所以在执行Child temp=(Child)hm.get("SN02312");这句代码时,不能把字符串转换成Child类型。
修改成这样就可以了:
hm.put("SN02312",ch1);
hm.put("SN0232314124122",ch2);
这样既可。

62,635

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧