Java 8 引入了一些新的特性,如 Lambda 表达式和流(Stream),可以有效地优化传统的if-else结构。 1. 如果使用传统的 if-else 结构 下面的代码展示了如何使用if-else结构来处理简单的用户角色权限验证: publicclassUser{privateStringrole;publicUser(Stringrole){this.role=role;}publicvoidaccessResource(){if("ADMIN...
使用枚举加Function(Java8)优化if else语句 可能在不自觉时,代码中就出现了很多的if和else语句,可能像下图一样 当然可能没有这么夸张,但是我见过比这还夸张的代码。网上有很多优化if else语句的方法,常用的我就不提了。这次主要是之前看EffectJava时,当时有一张对枚举讲的很是详细,结合Java8的function接口,感觉这...
上面那个也是层层if还有else if,也不是很优雅,在很多书中也不推荐这么写,而推荐这么写: 代码语言:javascript 复制 /* * 来源公众号:Java技术栈 */publicStringgetInfo(XXxx)if(xx.getInfo()!=null){returnxx.getInfo();}if(xx.getInfo1()!=null){returnxx.getInfo1();}if(xx.getInfo2()!=null){r...
3. 使用Lambda表达式调用方法 在Java8中,我们可以使用Lambda表达式来调用不同的方法,避免繁琐的if-else语句。 publicclassMain{publicstaticvoidmain(String[]args){MethodInterfacemethodImpl=newMethodImplementation();// 调用methodA方法methodImpl.methodA();// 调用methodB方法methodImpl.methodB();}} 1. 2. 3. ...
一、责任链模式最近在做一个数据校验的功能,需要校验的东西很多,有的从数据库中查询,有的是固定的数值校验,有的是数据类型校验, 如果通过ifelse来写,也是没问题的。 但,为了代码的优雅和可扩展性,我选择尝…
优化前: String OrderStatusDes; if(orderStatus==0){ OrderStatusDes="订单未支付"; }else if(OrderStatus==1){ OrderStatusDes="订单已支付"; }else if(OrderStatus==2){ OrderStatusDes="已发货"; } ... 优化后: 先定义一个枚举: String OrderStatusDes; if(orderStatus==0){ OrderStatusDes="订...
if(user!=null){Address address=user.getAddress();if(address!=null){String province=address.getProvince();}} 这种写法是比较丑陋的,为了避免上述丑陋的写法,让丑陋的设计变得优雅。JAVA8提供了Optional类来优化这种写法,接下来的正文部分进行详细说明 ...
使用java8之前,一直在写一些枯燥的if else,不能说有什么不好,只是在我们有了java8 之后我们再遇到这种需要写if 的场景下,又多了一种选择。好了不多废话直接上干货。 首先我们先分析一下,我们平时需要作判断的场景大概就是如下几种 if(...){}if(...){}else{}if(...){}else if(...){}else{} ...
在开发过程中经常会使用if...else...进行判断抛出异常、分支处理等操作。这些if...else...充斥在代码中严重影响了代码代码的美观,这时我们可以利用Java 8的Function接口来消灭if...else... 复制 if(...){thrownewRuntimeException("出现异常了");}if(...){doSomething(); ...
//All Required Predicates //SOP Special Event if(eventList.size() >1 && results.getAcknowledgeUid().isEmpty()){ event = eventList.stream().filter(isOriginalEvent.and(isSOPEvent).and(isSOPSpecialEvent)) .findFirst().orElse(null); } else if (eventList.size() >1 && !results.get...