Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:流上的函数组合_Java_Java Stream - Fatal编程技术网

Java:流上的函数组合

Java:流上的函数组合,java,java-stream,Java,Java Stream,我需要创建如下代码: this.getPendingDocuments() .forEach((this::documentProcessed).andThen(this::createAuditory)); 我的意思是,我需要对同一个元素应用两个函数 有什么想法吗 编辑 编译器告诉我: [Java]此表达式的目标类型必须是函数接口 您可以编写一个lambda表达式来执行这两种方法: this.getPendingDocuments() .forEach(doc -> {

我需要创建如下代码:

this.getPendingDocuments()
    .forEach((this::documentProcessed).andThen(this::createAuditory));
我的意思是,我需要对同一个元素应用两个函数

有什么想法吗

编辑

编译器告诉我:

[Java]此表达式的目标类型必须是函数接口


您可以编写一个lambda表达式来执行这两种方法:

this.getPendingDocuments()
    .forEach(doc -> {
                        this.documentProcessed(doc);
                        this.createAuditory(doc);
                    });

您可以编写执行这两种方法的lambda表达式:

this.getPendingDocuments()
    .forEach(doc -> {
                        this.documentProcessed(doc);
                        this.createAuditory(doc);
                    });
使用forEach()时,可以在内部添加更多函数。。。像这样

this.getPendingDocuments()
.forEach( element -> {
     this.documentProcessed(element);
     this.createAuditory(element);
});
使用forEach()时,可以在内部添加更多函数。。。像这样

this.getPendingDocuments()
.forEach( element -> {
     this.documentProcessed(element);
     this.createAuditory(element);
});
必须将方法引用指向函数接口类型。在这种情况下,
forEach
需要一个
Consumer
实例:

Consumer<Document> processDocument = this::documentProcessed;
this.getPendingDocuments().forEach(processDocument.andThen(this::createAuditory));
consumerprocessdocument=this::documentProcessed;
this.getPendingDocuments();
上面的代码使用
消费者。然后
链接消费者。当然,这两种方法都应该接受
文档
实例作为参数(或者由
getPendingDocuments()
方法返回的
Iterable
的元素类型是什么)。

必须将方法引用指向函数接口类型。在这种情况下,
forEach
需要一个
Consumer
实例:

Consumer<Document> processDocument = this::documentProcessed;
this.getPendingDocuments().forEach(processDocument.andThen(this::createAuditory));
consumerprocessdocument=this::documentProcessed;
this.getPendingDocuments();

上面的代码使用
消费者。然后
链接消费者。当然,这两种方法都应该接受
文档
实例作为参数(或者由
getPendingDocuments()
方法返回的
Iterable
元素的任何类型)。

执行这些方法(documentProcessed和CreateAudio)有返回值吗?
documentProcessed
createauditive
做什么?当我们清楚地处于
消费者
的环境中时,为什么会出现关于
功能的问题?你能澄清一下吗?
消费者
确实有一个
和第二个
方法。你的代码不起作用吗?我编辑了这篇文章。这些方法(documentProcessed和CreateAdvisory)有返回值吗?
documentProcessed
CreateAdvisory
做什么?当我们清楚地处于
消费者
的环境中时,为什么会出现关于
功能的问题?你能澄清一下吗?
消费者
确实有一个
和第二个
方法。你的代码不起作用吗?我编辑过这篇文章。