为了账号安全,请及时绑定邮箱和手机立即绑定

为什么强制转换时会报错

为什么强制转换时会报错

wenqu 2016-01-13 22:35:31
为什么老师在视频里把Object类型强制转换为int的时候没报错,我自己在转换的时候却报错了???????
查看完整描述

8 回答

?
蒲柳隐逸

TA贡献5条经验 获得超1个赞

我的环境是可以的,这得益于jdk1.5的自动装箱与拆箱,你的版本不可能比1.5更低了。。。

或者你可以这样,更直观 。

Integer.parseInt(map.get("id").toString())


查看完整回答
反对 回复 2016-01-17
?
MissSquare

TA贡献3条经验 获得超0个赞

can not casting!

查看完整回答
反对 回复 2016-01-16
?
我是一棵秋天的树

TA贡献1条经验 获得超0个赞

向下转型有风险。

查看完整回答
反对 回复 2016-01-15
  • 蒲柳隐逸
    蒲柳隐逸
    是的,向下转型有限制,就是其实例(new 出来的东东)。比如 Animal a1= New Dog(); Dog d1 = (Dog)a1;
?
2016_Maybe

TA贡献11条经验 获得超5个赞

因为你的jdk可能用的是1.6.或者更低的版本,所以你需要把jdk版本Ok了

查看完整回答
反对 回复 2016-01-14
  • 蒲柳隐逸
    蒲柳隐逸
    1.6不可以吗?我环境是1.7测试不出来。麻烦具体说下,1.6为什么不可以?
?
手插口袋_

TA贡献25条经验 获得超45个赞

这基础没谁了。。。。。

首先你语法上有错,Object 不可以转换为int  原因不知道吗?

一个是对象 一个是基本类型。。。。

如果你要语法上不报错的话, 你可以吧 Int 更换为 Integer(Int的封装对象)

对象强转对象没问题

还有Object 是一个父容器

强制转换之前必须要判断是否是你要的类型例如:

   Map<String, Object> map=new HashMap<String, Object>();
   map.put("1", "hello world");
   if(map.get("1") instanceof Integer){
       Integer a=(Integer) map.get("1");
       System.out.println(a);
   }else if(map.get("1") instanceof String){
       String a=map.get("1").toString();
       String a1=(String) map.get("1");
       System.out.println(a+"\n"+a1);
   }


查看完整回答
反对 回复 2016-01-14
?
历史与足迹

TA贡献6条经验 获得超6个赞

把代码贴上来啊,你这么问太笼统了,首先JAVA中所有类的父类都是Object, 如果你定义的Object对象就是1、2的整型,在强制类型转换的时候就不会报错,如果是"str"等字符串对象时不可能被转换为整型的。

查看完整回答
反对 回复 2016-01-13
?
产品经理不是经理

TA贡献481条经验 获得超143个赞

截图出来

查看完整回答
反对 回复 2016-01-13
  • wenqu
    wenqu
    已经截图了,不过图片有点小,你看看
  • 8 回答
  • 0 关注
  • 2747 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信