日常写代码中傻逼问题集锦!

1、工作需求完成后代码优化硬编码时

参考资料:

https://blog.csdn.net/u010560349/article/details/79686206

https://blog.csdn.net/u010560349/article/details/79687729

代码优化前:

if(csAssignPolicyVO.getRoleId() == 100018L){
   //.....
}

打算把100018这个roleId全部替换掉

优化后:

if(csAssignPolicyVO.getRoleId() == Long.valueOf(CodeCst.M_QHL_CS_L3)){
   //.....
}

当我改完之后就直接提交SVN了,然后再测试的时候就被人吐槽了!

由于vo里面定义的roleId是Long类型,因此当使用 == 比较的时候,优化后的if条件 == 左右两边的对象地址并不相同,所以无论对象的值如何条件都不能通过;而优化前使用 == 的时候,由于是和基础数据类型的100018L作比较,因此vo.getId对象会自动拆箱使用内容与100018L比较,这时候当对象值等于100018的时候,条件可以通过。

正确优化:

if(CodeCst.M_QHL_CS_L3.equal(String.valueOf(csAssignPolicyVO.getRoleId())){
   //.....
}

利用String的equal()方法来比较。


2、sql语句日期转化的问题

orcale 日期与字符串相互转化的SQL语句

日期转字符串:

select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual;

字符串转日期:

select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss') from dual;

在有日期格式同时存在月和分钟的时候,分钟写成mi以区分月份MM。

该问题容易出现在一开始只需要显示年月日,后面需求增加时分秒的时候有可能没注意到,一定要小心,出现的话问题不好排查。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值