如何将java stream collect转换为scala
Java代码
objRefs = objRefs.stream().filter(objRef -> DataUtil.isNotEmpty(objRef)).collect(Collectors.toCollection(LinkedHashSet::new));
如何将其转换为scala? 下面的代码编译错误
objRefs = objRefs.stream().filter(objRef => DataUtil.isNotEmpty(objRef)).collect(Collectors.toCollection(LinkedHashSet::new));
# 1 楼答案
LinkedHashSet::new
不是有效的scala。你的意思是调用LinkedHashSet的构造函数吗?如果是,请使用new LinkedHashSet(_)
您选择的解决方案是将java转换为scala。如果你这么做了,使用scala就没有什么价值了,你还不如使用java
更惯用的解决方案是
objRefs.stream().filter(DataUtil.isNotEmpty).asScala(Set)