【问题标题】:How to remove every element from a list if the list is not empty using Java 8 lambda/streams using my service如果列表不为空,如何使用我的服务使用 Java 8 lambda/streams 从列表中删除每个元素
【发布时间】:2018-06-01 21:11:15
【问题描述】:

您好,我想使用 java 8 更新此旧代码。

if(CollectionUtils.isNotEmpty(listOfObjects){
 for(Object o : listOfObjects){
     objectService.delete(o);
  }
 }

我对 java 8 和 lambda 表达式相当陌生,我想使用它并尽可能地重塑我的代码。不是因为它总是很重要,而是因为我想习惯它以便能够更轻松地学习它。

【问题讨论】:

  • 以上代码可以转换listOfObjects.forEach(objectService::delete),但这与您在问题中所说的不符。
  • if (listOfObjects != null) listOfObjects.forEach(objectService::delete);

标签: java list lambda service java-stream


【解决方案1】:

虽然您的问题是询问是否从列表中删除元素,如果它不为空,您可以简单地使用 list.clear() 来清除它。关于您的遗留代码重构以使用 Java8 功能;

if(CollectionUtils.isNotEmpty(listOfObjects)) {
  for(Object o : listOfObjects){
    objectService.delete(o);
  }
}

可以转换为使用method references,如下所示:

listOfObjects.forEach(objectService::delete)

如果您的方法只接受Object 参数,这是使用method references 的更好地方。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-05
    • 1970-01-01
    • 1970-01-01
    • 2016-06-12
    • 1970-01-01
    • 2014-02-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多