![](/img/trans.png)
[英]How to configure Java 8 java.util.Optional using Spring 4 xml
[英]How to port from java.util.Optional method call chaining to Guava Optional?
我有以下使用java.util.optional的内容
// this works fine for java.util.Optional
Optional <Context> xx = Optional.ofNullable(x);
Optional<DateRange> dates = xx.map(Context::getEntity).map(Entitiy::getDates);
但是,我需要将其转换为使用番石榴的可选。 我尝试了类似guava可选的转换,但是我不确定如何用guava可选的链接这样的东西?
// guava...how can I chain method calls as such...this fails of course
Optional <Context> xx = Optional.of(x);
Optional<DateRange> dates = xx.get().getEntity().getDates();
任何帮助是极大的赞赏!
几乎完全一样。 只是方法的名称不同,但是用法完全相同。
请记住,Guava的Optional.of()和Java8的Optional.ofNullable()是不同的。 您应该改用Guava的Optional.fromNullable() 。
Guava的Optional.transform()等于Java8的Optional.map() 。
Optional<Context> xx = Optional.fromNullable(x);
Optional<DateRange> dates = xx.transform(Context::getEntity).transform(Entitiy::getDates);
如果您未使用Java8,则将无法使用lambda和方法引用,因此必须继续使用实现Function接口的匿名类:
xx.transform(new Function<Context, Entity>() {
@Override
public Entity apply(Context c) {
return c.getEntity();
}
})
等等
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.