gpt4 book ai didi

java - Java 8 Streams 中使用谓词对象的动态函数调用

转载 作者:行者123 更新时间:2023-11-30 03:29:03 25 4
gpt4 key购买 nike

这是我的父类

class Parent
{
String attrib1;
String attrib2;
String attrib3;

// getters and setters of three fields

然后我创建了一个列表

List<Parent> objList = new ArrayList<Parent>();

然后我向 objList 添加了一些 Parent 对象。

现在我想根据类中字段的值过滤这些对象。但我只会动态获取字段名称。我想使用流来实现此目的。

List<Parent> temp = objList.stream()
.filter(nestedDo -> nestedDo.getAttrib2() == "manu")
.collect(Collectors.toList());

此处 getAttrib2() 有所不同。它可以是 getAttrib1() 或 getAttrib3()。

所以我需要动态函数调用。我们可以使用谓词来实现它吗?不幸的是,我对 Predicate 对象一无所知。请详细解释您的答案及其中的所有概念。

最佳答案

是的,您可以创建不同的Predicate并根据情况使用它们。

Predicate<Parent>  first= e -> e.getAttrib1().equals("nanu"); 
Predicate<Parent> second= e -> e.getAttrib2().equals("..");

List<Parent> temp = objList.stream()
.filter(first) // Similarly you can call second
.collect(Collectors.toList());

关于java - Java 8 Streams 中使用谓词对象的动态函数调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29483539/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com