importjava.util.Optional;publicclassTester{publicstaticvoidmain(String[]args){Optional<Integer>optional=Optional.of(1);optional.ifPresentOrElse(x->System.out.println("Value:"+x),()->System.out.println("Not Present."));optional=Optional.empty();optional.ifPresentOrElse(x->System.out.println("V...
User result = Optional.ofNullable(user).orElse(createNewUser()); logger.debug("Using orElseGet"); User result2 = Optional.ofNullable(user).orElseGet(() -> createNewUser()); }privateUsercreateNewUser(){ logger.debug("Creating New User");returnnewUser("extra@gmail.com","1234"); } 上...
1public staticvoid main(String[] args) {2String name = "沉默王三";3 System.out.println("orElse");4String name2 = Optional.ofNullable(name).orElse(getDefaultValue());56 System.out.println("orElseGet");7String name3 = Optional.ofNullable(name).orElseGet(OrElseOptionalDemo::getDefa...
创建一个名为isBlankOrNoBlank的方法,方法的返回值为刚才定义的函数式接口-PresentOrElseHandler。 /** *参数为true或false时,分别进行不同的操作 * *@paramb *@returncom.example.demo.func.BranchHandle **/ publicstaticPresentOrElseHandler<?>isBlankOrNoBlank(Stringstr){ return(consumer,runnable)->{ if(...
上面代码我们可以使用 Optional#ifPresent 代替,如下所示: Optional<Company> optCompany = ...; optCompany.ifPresent(System.out::println); 使用ifPresent 方法,我们不用再显示的进行检查,如果 Optional 为空,上面例子将不再输出。 2|4Optional.ifPresentOrElse java.util.Optional类的ifPresentOrElse(Consumer,Ru...
Using orElseGet Creating New User 由此可见,当对象为空而返回默认对象时,行为并无差异。 我们接下来看一个类似的示例,但这里Optional不为空: @Test public void givenPresentValue_whenCompare_thenOk() { User user = new User("john@gmail.com", "1234"); ...
在开发过程中经常会使用if...else...进行判断抛出异常、分支处理等操作。这些if...else...充斥在代码中严重影响了代码代码的美观,这时我们可以利用Java 8的Function接口来消灭if...else...。 if(...){ thrownewRuntimeException("出现异常了");
创建一个名为PresentOrElseHandler的函数式接口,接口的参数一个为Consumer接口。一个为Runnable,分别代表值不为空时执行消费操作和值为空时执行的其他操作 代码语言:javascript 复制 /** * 空值与非空值分支处理 */publicinterfacePresentOrElseHandler<TextendsObject>{/** ...
public static PresentOrElseHandler<?> isBlankOrNoBlank(String str){ return (consumer, runnable) -> { if (str == null || str.length() == 0){ runnable.run(); } else { consumer.accept(str); } }; } 1. 2. 3. 4. 5. 6. ...
[Android.Runtime.Register("ifPresentOrElse", "(Ljava/util/function/IntConsumer;Ljava/lang/Runnable;)V", "", ApiSince=33)] public void IfPresentOrElse (Java.Util.Functions.IIntConsumer? action, Java.Lang.IRunnable? emptyAction); 參數 action IIntConsumer 如果值存在,則為要執行的動作 emptyAct...