java中long会当成float而不是Long处理

博客探讨了Java中long类型变量在调用重载函数时出现的意外情况。原本期望调用接受Long参数的函数,但实际上却误调用了float参数的函数。经过修正将Long改为long后,问题得到解决,强调了long和Long在某些情况下并不等价,并且long不能直接作为float使用。
摘要由CSDN通过智能技术生成

java 代码中

long currentTime = new Date().getTime();
Util.put("KEY_A", currentTime);

Util.java中有重载函数,一个接受Long类型,一个接受float类型,

    public static void put(String key,Long value){
        Log.d("TEST","putLong("+key+")="+value);
    }
    public static void put(String key,float value){
        Log.d("TEST","putFloat("+key+")="+value);
    }

最后的log居然 是

D TEST   : currentTime=1629345832325
D TEST   : putFloat(KEY_A)=1.62934581E12

long变量居然当成float处理了

把Util.java修改成

    public static void put(String key,long value){
        Log.d("peggy","putLong("+key+")="+value);
    }

即Long改成long

此时运行正常,long变量成功被long形参的重载函数所处理,而不是被float形参的重载函数所处理。

D TEST   : currentTime=1629346065071
D TEST   : putLong(KEY_A)=1629346065071
结论

1.long和Long原来有时候是不一样的。
2.long原来可以当float用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值