可选用途
我已经使用Java 8超过6个月了,我对新的API更改非常满意。我仍然没有信心的一个领域是何时使用。我似乎在想要在任何地方使用它之间摇摆不定,而根本没有。Optional
null
似乎有很多情况下我可以使用它,我永远不确定它是否增加了好处(可读性/空安全性)或者只是导致额外的开销。
所以,我举了几个例子,我对社区关于是否有益的想法很感兴趣。Optional
1 - 作为公共方法返回类型时,该方法可以返回:null
public Optional<Foo> findFoo(String id);
2 - 作为方法参数时,参数可以是:null
public Foo doSomething(String id, Optional<Bar> barOptional);
3 - 作为 Bean 的可选成员:
public class Book {
private List<Pages> pages;
private Optional<Index> index;
}
4 - 在 :Collections
总的来说,我不认为:
List<Optional<Foo>>
添加任何内容 - 特别是因为可以使用来删除值等,但是在集合中是否有任何好的用途?filter()
null
Optional
我错过了什么案例?