我有一个用例,我必须返回一个至少包含1个元素的集合.传入集合可能包含0个或更多元素.
所以这可以很容易地完成
Set<ObjectB> setofB = collectionOfA.isEmpty() ? new HashSet<ObjectB>() {{ add(new ObjectB()); }} : collectionOfA .stream() .map(item -> new ObjectB(item)) .collect(Collectors.toSet());
但….
我也试图利用这个机会更好地熟悉Java 8工具和功能,所以我试着看看是否可以在没有条件测试的情况下以更类似Java 8的方式完成.
非常感谢您的意见和建议!
解决方法
我想你已经尽可能简单了.请记住,Java 8仍然是同一种语言;不要过分努力使一切功能.
我对你的代码做的一个改进是使用Collections.singleton(new ObjectB())而不是笨拙且有问题的双括号初始化.