如何使用 Java 8 Lambdas 执行此操作:
Optional<String> code;
if (accountType.requiresCode() && (!code.isPresent() || empty(code.get()))) {
new IllegalArgumentException("Account type " + accountType + " requires code");
}
Run Code Online (Sandbox Code Playgroud)
您可以将代码重写为
Optional<String> code;
if (accountType.requiresCode()) code.filter(x->!empty(x)).orElseThrow(
() -> new IllegalArgumentException("Account type " + accountType + " requires code")
);
Run Code Online (Sandbox Code Playgroud)
或者,假设您的empty(code.get())
实际意思是code.get().isEmpty()
:
Optional<String> code=Optional.empty();
if (accountType.requiresCode()) code.filter(x->!x.isEmpty()).orElseThrow(
() -> new IllegalArgumentException("Account type " + accountType + " requires code")
);
Run Code Online (Sandbox Code Playgroud)
但它并没有真正增加可读性。Lambda 并不总是比普通代码更好。
归档时间: |
|
查看次数: |
785 次 |
最近记录: |