Long.getLong和parseLong的区别

最近项目上有小伙伴在string转long的时候,看到有getLong方法没多思考就使用了。后面发现出问题,返回了null,继而导致后面一系列报错。引起了大家的重视,纷纷自查代码有没有使用getLong。

经过搜索发现网上也不少人遇到过。收集资料,简单做下整理:

Long.getLong(String s)方法是获取系统参数,并将系统参数转为Long类型。

换句话说,这方法不是进行字符串转换!!!只是获取一些Long类型的系统变量,如果不存在则返回null。比如说可以获取JDK的版本:

Long.getLong("sun.arch.data.model");   //输出32或者64

要实现字符串string转换成long,一般是用Long.parseLong(String s) ,大部分情况下性能最优。

System.out.println(Long.parseLong("jdk"));

这个故事提醒了我们2个点:

1、不能看到方法名很像就直接用,还是多点进去看看源码,或者自己main方法跑一遍。毕竟jdk也是人写的,总会有不规范的地方。

2、见贤思齐,见不贤而内自省。自己写方法的时候名字也尽可能规范点,比如说这个getLong()方法要是叫getSystemPropLong之类的,估计就没这么多人用错了。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值