对于Java程序员来说,null是令人头痛的东西。时常会受到空指针异常(NPE)的骚扰。连Java的发明者都承认这是他的一项巨大失误。
那么,有什么办法可以避免在代码中写大量的判空语句呢?
有人说可以使用JDK8提供的Optional来避免判空,但是用起来还是有些麻烦。
作者在日常工作中,封装了一个工具,可以可以链式调用对象成员而无需判空,相比原有的ifnull逻辑和JDK8提供的Optional更加优雅易用,在工程实践中大大提高了编码效率,也让代码更加的精准和优雅。
不优雅的判空调用
我想从事Java开发的小伙伴肯定有遇到过下面这种让人难受的判空逻辑:现在有一个User类,School是它的成员变量authorAxinsince20200920summary一个User类定义(Ps:Data是lombok组件提供的注解,简化了getset等等的约定代码)DatapublicclassUser{privateSprivateSprivateSDatapublicstaticclassSchool{privateStringscNprivateS}}复制代码
现在想要获得School的成员变量adress,一般的处理方式:publicstaticvoidmain(String〔〕args){UseraxinnewUser();User。SchoolschoolnewUser。School();axin。setName(hello);if(Objects。nonNull(axin)Objects。nonNull(axin。getSchool())){User。SchooluserScaxin。getSchool();System。out。println(userSc。getAdress());}}复制代码
获取...
(全文)