第七讲---Java小技巧

本文分享了几个实用的Java编程小技巧,包括检查null的推荐方式及其特殊情况,并介绍了如何在数据库中创建组合索引。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:

        其实,写过几篇博客之后,还是有一点感触的:刻意地去写一篇系统性的博客往往会因为惰性而最后不了了之,而且后期也基本上不会再回头来看这些博客,而以日记周记的形式写短篇博客,反而能坚持下去。所以,特意立一篇关于Java小技巧的博客,后期持续更新~~~

 

正文:

        技巧1:在代码中,为什么会推荐if(null==user.getId()),而不是if(user.getId()==null)?

        答曰:两者的效果一样,而且都不可避免空指针,但是前者如果不小心把“==”写成赋值符号,编译失败;后者出现类似情况的时候,编译成功。因此前者更利用排查错误。

 

        注意:后期有Oscer反馈,其实user.getId()=null一样会编译错误。(这里,博主插一句:其实关于“if里面null==user.getId()和user.getId()==null的区别”这个问题,博主很早就有疑问了,但是一直没有去关注。直到写这篇博客之前,博主的好友对这个问题进行了探讨得出此结论,但是博主没有经过实践就发布,是很不严谨的!)在Java中,if(user.getId()=null)是编译失败的;但是在C/C++中,if(user.getId()=null)是编译成功的。也就是说,if(null==user.getId())这种写法极有可能是C/C++程序员将习惯带到Java中的。if(null==user.getId())和if(user.getId()==null)两种写法本身没有优劣之分。

        然而:还是有以下三种情况需要特别注意(虽然这样写代码的情况很少见),这三种情况是可以编译成功的,但是要注意这三种情况中要将null强转为Boolean类型。

        第一种:如果属性是boolean类型,而且用boolean类型的getter方法

private boolean testFirst;
boolean testFirst = quotationPublicParamDTO.isTestFirst();
        
if (testFirst = (Boolean) null) {
    return null;
}

        第二种:如果属性是Boolean类型,而且用Boolean类型的getter方法

private Boolean testSecond;
Boolean testSecond = quotationPublicParamDTO.getTestSecond();
        
if (testSecond = (Boolean) null) {
    return null;
}

        第三种:如果属性是Object类型,而且用Object类型的getter方法,但是判断之前,要将Object类型强转为boolean类型

private Object testThird;
boolean testThird = (boolean) quotationPublicParamDTO.getTestThird();
        
if (testThird = (Boolean) null) {
    return null;
}

 

         技巧2:如何建组合索引?

        答曰:ALTER TABLE test ADD INDEX `idx_aaa_bbb_ccc` (`aaa`, `bbb`, `ccc`)

 

        技巧3:

        答曰:

 

转载于:https://my.oschina.net/linxxbaobao/blog/1621023

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值