如何解决提取 map(...) 调用中的代码
我想把示例代码中map(...)
方法里面的代码提取到单独的一行(现在代码太长,影响可读性):
final Specification<PeriodicInvoice> noFilterClause = Specification.where(null);
Optional<Date> of = ...;
of.map(f -> Specification.<PeriodicInvoice> where((root,query,cb) -> cb.greaterThan(root.<Date> get("fromPeriod"),f)))
.orElse(noFilterClause);
我不想写一个新函数。我想将提取的代码内联在 of.map(...)
上方一行。有什么建议吗?
解决方法
您可以将该 lambda 表达式存储在 Function
类型的变量中:
final Specification<PeriodicInvoice> noFilterClause = Specification.where(null);
Optional<Date> of = ...;
Function<Date,Specification<PeriodicInvoice>> mapper =
f -> Specification.<PeriodicInvoice> where((root,query,cb) -> cb.greaterThan(root.<Date> get("fromPeriod"),f));
of.map(mapper)
.orElse(noFilterClause);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。