java吧 关注:1,236,347贴子:12,705,338
  • 14回复贴,共1

问一个问题,关于Object只能强转成Long,不能强转成long

只看楼主收藏回复

这是我同事提交的代码,他那边能正常运行(简化版)
Object o = new Object();
long l = (long)o;
我更新下来就报错了。
报错错误是Object不能转成long。
我能想到,因为long是基本类型,所以不能强转
但就奇怪了
按理说,同时那边就是正常的
我能想到,因为java有自动装箱拆箱,所以他那边正常,但我这边为什么就报错。
我的编译版本是1.6,应该不存在编译版本的问题


IP属地:上海1楼2016-08-15 13:57回复
    编译应该不报错吧


    IP属地:广东来自Android客户端3楼2016-08-15 14:01
    收起回复
      小long报错哦


      IP属地:辽宁来自Android客户端4楼2016-08-15 14:52
      收起回复
        装箱拆箱不是这么玩的吧,装箱能够在你把一个引用类型赋给基本类型时把被赋的值装箱?就像楼上说的,应该是把 l 引用设置为Long包装类,而不是long基本数据类型


        IP属地:上海5楼2016-08-15 14:57
        收起回复
          Long


          来自Android客户端6楼2016-08-15 15:31
          回复
            你看下jdk版本吧 他是多少你是多少


            IP属地:江西来自Android客户端7楼2016-08-15 15:35
            收起回复
              Obj 是引用类型,不能转基本类型,必须是包装类的类型才可以 也就是Long


              来自iPhone客户端8楼2016-08-15 15:37
              回复
                解决了。需要把编译版本调到1.7以上,就可以直接用long了


                IP属地:上海9楼2016-08-15 16:01
                回复
                  加个private试试


                  来自iPhone客户端10楼2016-08-15 16:18
                  回复