编辑:我的问题在这里得到了解答.总而言之,我对非静态方法引用的使用感到困惑.功能接口和参考方法具有不同数量的参数.
回答我的问题的是评论和接受的答案.
我目前正在阅读关于流减少方法的Java教程(https://docs.oracle.com/javase/tutorial/collections/streams/reduction.html).在那里,我发现了一段我认为错误的代码,所以我做了一个更简单的代码来确保.
// B.java file
import java.util.*;
public class B
{
public static void main(String[] args)
{
List<Integer> zahlen = new LinkedList<Integer>();
zahlen.add(1);
zahlen.add(2);
zahlen.add(3);
Averager averageCollect = zahlen.stream()
.collect(Averager::new, Averager::addcount, Averager::combine);
System.out.println(averageCollect.average());
}
}
// Averager.java from the official Java tutorial
public class Averager
{
private int total = 0;
private int count = 0;
public double average() {
return count > 0 ? ((double) total)/count : 0;
}
public void addcount(int i) { …Run Code Online (Sandbox Code Playgroud)