Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
If(notnull&;notnull)Java函数式编程_Java_Functional Programming_Vavr - Fatal编程技术网

If(notnull&;notnull)Java函数式编程

If(notnull&;notnull)Java函数式编程,java,functional-programming,vavr,Java,Functional Programming,Vavr,在Java8之前,我习惯用这种方式编写代码 import io.vavr.control.Option; Option<String> nullableValueA=Option.of("toto"); Option<String> nullableValueB=Option.of(null); if (nullableValueA.isEmpty() && nullableValueB.isEmpty()){ throw new Ru

在Java8之前,我习惯用这种方式编写代码

import io.vavr.control.Option;

Option<String> nullableValueA=Option.of("toto");
Option<String> nullableValueB=Option.of(null);

if (nullableValueA.isEmpty() && nullableValueB.isEmpty()){
        throw new RuntimeException("Business exception");
}
你知道如何以最好的方式编写这段代码吗


非常感谢您的帮助

如果您使用的是Java 9+,您可以使用

String value = Optional.ofNullable("<resolve valueA>")
                .or(() -> Option.ofNullable("<resolve valueB>"))
                .orElseThrow(() -> new RuntimeException("Business exception"));
String value=Optional.ofNullable(“”)
.或(()->可选空(“”)
.orelsetrow(()->新运行时异常(“业务异常”));
这将为您提供第一个非空值,如果两者都为空,则引发异常

在Java 8上也可以通过以下方式实现同样的功能:

String value = Optional.ofNullable("<resolve valueA>")
              .orElseGet(() -> Optional.ofNullable("<resolve valueB>")
                  .orElseThrow(() -> new RuntimeException("Business exception")));
String value=Optional.ofNullable(“”)
.orElseGet(()->可选.ofNullable(“”)
.orelsetrow(()->新运行时异常(“业务异常”));

如果您使用的是Java 9+,则可以使用

String value = Optional.ofNullable("<resolve valueA>")
                .or(() -> Option.ofNullable("<resolve valueB>"))
                .orElseThrow(() -> new RuntimeException("Business exception"));
String value=Optional.ofNullable(“”)
.或(()->可选空(“”)
.orelsetrow(()->新运行时异常(“业务异常”));
这将为您提供第一个非空值,如果两者都为空,则引发异常

在Java 8上也可以通过以下方式实现同样的功能:

String value = Optional.ofNullable("<resolve valueA>")
              .orElseGet(() -> Optional.ofNullable("<resolve valueB>")
                  .orElseThrow(() -> new RuntimeException("Business exception")));
String value=Optional.ofNullable(“”)
.orElseGet(()->可选.ofNullable(“”)
.orelsetrow(()->新运行时异常(“业务异常”));

你就不能用
谓词
s吗?你不是在问一些具体的问题来获得一些具体的结果。“最佳方式”过于基于意见,而不是stackoverflow的工作方式。请在你的代码中想出一些具体的东西或你想改进的地方,并询问qeustion。@VLAZ你能解释我如何使用谓词吗?你不能只使用
谓词
s吗?你不是在问一些具体的问题来获得一些具体的结果。“最佳方式”过于基于意见,而不是stackoverflow的工作方式。请在您的代码中想出一些具体的事情或需要改进的地方,并询问qeustion@VLAZ您能解释一下如何使用谓词吗?