国内最专业的IT技术学习网

UI设计

当前位置:主页 > UI设计 >

巧用Optional摆脱NullPointExcept的折磨

发布时间:2019/07/17标签:   方法    点击量:

原标题:巧用Optional摆脱NullPointExcept的折磨
配景在Java中,假如你实验对null做函数挪用,就会激发NullPointerException(NPE),NPE是Java顺序开辟中的最典范的异样,关于Java开辟者来讲,不管你是初出茅庐的新人和还任务多年的老司机,NPE常常让他们翻车。为了幸免NPE,他们会加许多if推断语句,使得代码的可读性变得很差。从软件计划的角度来看,null自身是没故意义的语义,这是一种对缺失变量值的过错的建模。从Java范例体系的角度看,null能够被赋值给任何范例的变量,而且一直被通报,晓得最初谁也不晓得它是从那里引入的。Optional的引入Java计划者从Haskell和Scala中猎取灵感,在Java 8中引入了一个新的类 java.util.Optional。假如一个接口前往Optional,能够表现一团体能够有车也能够没有车,这个比简略的前往Car要更明白,浏览代码的人不须要提早预备营业常识。Optional的目标就在于此:经过范例体系让你的范畴模子中暗藏的常识显式地表现在你的代码中。Optional的应用巧用Optional摆脱NullPointExcept的折磨下面这张内外罗列了Optional的基本API,我这里罗列了一些应用的tips: 你能够用ofNullable将一个能够为null的工具封装为Optional工具,而后猎取值的时间应用orElse方式供给默许值;能够应用empty方式创立一个空的Optional工具;of方式个别不必,不外假如你晓得某个值弗成能为null,则能够用Optional封装该值,如许它一旦为null就会抛出异样。巧用Optional摆脱NullPointExcept的折磨 从某个工具中猎取值是最罕见的一种场景,这时间为了幸免这个工具为null招致NPE,个别是应用if-then-else构造检讨,假如应用Optional的话,则能够应用map方式来猎取它封装的工具中某个字段的值。巧用Optional摆脱NullPointExcept的折磨 假如须要持续、层层递进的从某个工具链的末了猎取字段的值,则不能全体应用map方式,须要先应用flatMap,最初再应用map方式;Optional中的map、flatMap和filter方式,在观点是与Stream中对应的方式都很相似,差别就在于Optional中的元素最多有一个,算是Stream的一种特别情形——一种特别的聚集。巧用Optional摆脱NullPointExcept的折磨 不要应用ifPresent和get方式,它们实质上和不实用Optional工具之前的形式雷同,都是痴肥的if-then-else推断语句; 因为Optional无奈序列化,以是在范畴模子中,无奈将某个字段界说为Optional的,起因是:Optional的计划初志仅仅是要支撑能前往Optional工具的语法,假如咱们盼望在域模子中引入Optional,则能够用上面这类替换的方式:

版权信息Copyright ? IT技术教程 版权所有??? ICP备案编号:鲁ICP备09013610号