Java 8 Streams中的动态函数调用


List<?> temp = empObjList.stream()
                    .filter(nestedDo -> nestedDo.getAttrib1() == "subject")
                    .collect(Collectors.toList());

在这里,我调用方法getAttrib1((。但是要调用的方法只能动态标识。我将仅获取函数的名称作为字符串值。我想将其动态转换为功能。我知道我可以使用反射进行动态方法调用,但我无法通过反射重写上面的代码。

我认为您正在寻找的更像

List<?> temp = empObjList.stream().filter(this::processDo)
                    .collect(Collectors.toList());

其中processDo(nestedDo)是一种方法,它执行反射以找出要调用的方法。