首页 > 其他分享 >消除if else & Optional 使用

消除if else & Optional 使用

时间:2023-06-20 15:12:20浏览次数:38  
标签:ofNullable ifPresent Optional else user null smssc 消除

1、三目表达式

获取对象的属性,判断对象是否为空,为空返回默认值

C c = new C("c");
String name = c != null ? c.getName() :DEFAULT_NAME;

2、判断不为空再赋值

User user = userDao.getUser(id);
if (user!= null) {
    user.setName("张三");
}
// 使用Optional
Optional.ofNullable(user).ifPresent(p -> user.setName("李四"));

3、型之间的转换,当没有值的时候返回一个默认值

int timeout = Optional.ofNullable(RedisProperties.getTimeout())
                      .map(x -> Long.valueOf(x.toMillis()).intValue())
                      .orElse(10000);

4、判断不为空 set

before
BaseMasterSlaveServersConfig smssc = new BaseMasterSlaveServersConfig();
if (clientName != null) {
    smssc.setClientName(clientName);
}
if (idleConnectionTimeout != null) {
    smssc.setIdleConnectionTimeout(idleConnectionTimeout);

————————————————

after
ptional.ofNullable(clientName).ifPresent(smssc::setClientName);
Optional.ofNullable(idleConnectionTimeout).ifPresent(smssc::setIdleConnectionTimeout);

5、集合判断 为空返回空集合

List<String> list = null;
List<String> newList = Optional.ofNullable(list).orElse(new ArrayList());
newList.forEach(x -> System.out.println(x));

标签:ofNullable,ifPresent,Optional,else,user,null,smssc,消除
From: https://www.cnblogs.com/cherychina/p/17493686.html

相关文章

  • optional的正确使用
     loginResult.setTenant_id(Optional.ofNullable(user.getTenantCode()).orElse(""));loginResult.setTenant_name(Optional.ofNullable(user.getTenantName()).orElse("")); /***真实操作踢下线的逻辑**@paramparam*@paramisSt......
  • 为什么打两拍可以消除亚稳态的影响?
    触发器的建立时间和保持时间   时序电路的基础是触发器(FF、Flip-Flop),触发器正常工作需要满足建立时间和保持时间的时序要求建立时间(Tsu:setuptime)是指在触发器的时钟信号上升沿到来以前,数据稳定不变的时间,如果建立时间不够,数据将不能在这个时钟上升沿被稳定的打入......
  • 外连接消除技术应用
    上回介绍了外连接消除技术。今天更进一步来聊聊这个话题。select*fromarightjoinbona.m1=b.m1leftjoinconc.c1=b.c1wherec.c1in(1,2,3);基于外连接消除技术,这个语句leftjoin可以改写成innerjoin:select*fromarightjoinbona.m1=b.m1......
  • 【SQL 优化器技术系列】 外连接消除
    Oracle2005年出了一个30多页的小册子,《QueryOptimizationinOracleDatabase10gRelease2》,介绍了常见的优化器技术。我是做SQL执行的,优化部分只了解皮毛,从没有系统学习过。本系列逐个学习和介绍,自我提升,也帮助他人。外连接消除就是将一个outerjoin转换成innerjoin。......
  • oracle中if/else功能的实现的3种写法
    一、单个IF1、ifa=...then.........endif;2、ifa=...then......else....endif;二、多个IFifa=..then......elsifa=..then....endif;这里中间是“ELSIF”,而不是ELSEIF。这里需要特别注意https://www.cnblogs.com/yangzhilong/archi......
  • VBA中的选择结构If ...Then ...ElseIf...Else;Select Case...Case Else...
    IfElseIfElse结构的基本语法如下:If条件表达式1Then'表达式1真时,执行的代码ElseIf条件表达式2Then'表达式2真时,执行的代码ElseIf条件表达式3Then'表达式3真时,执行的代码...ElseIf条件表达式nThen'表达式n真时,执行的代码Else'以上表达......
  • Java8-Predicate 策略模式的替代品消灭 if else
    使用策略模式消灭ifelse,可以利用Java8的新特性来实现策略模式。利用Java8的Predicate消灭ifelse。首先定义一个map,key是不同的服务代码,value是需要做校验的条件,然后针对不同的服务代码做校验。当然Supplier、Consumer都可以做类似的实现。//定义校验的策略映射关系staticM......
  • shell中if else if的写法,if elif
    需求描述:在写shell脚本的过程中,用到了ifelse的写法,突然有多个参数需要判断那么就想到了ifelseif的用法,于是进行如下的测试。测试过程:1.写如下的测试脚本,进行多个值的判断#!/bin/bashif[[$1='tomcat']];thenecho"Inputistomcat"elseif[[$1=......
  • Java11 Optional
    简介publicfinalclassOptional<T>{privatestaticfinalOptional<?>EMPTY=newOptional<>();privatefinalTvalue;privateOptional(){this.value=null;}……}Optional<T>是个容器,在java.util包中用......
  • Python中带else子句的for循环执行过程
    这几天在厦门讲课,每天6小时,没有太多时间写新代码,宾馆不知道咋想的也不提供WiFi,只好用手机做个热点临时分享一点基础知识,300M的包月流量伤不起,热点瞬间就把仅剩的40M流量用完了,赶紧发完关闭热点。在Python中,有while和for两种循环,并且都可以带有else子句。其中while循环常用于无法提......