直接上例子:
import java.util.ArrayList;
import java.util.function.Supplier;
class Instance {
public static Instance create(final Supplier<Instance> supplier) {
return supplier.get();
}
public void plus(int v) {
System.out.println(v + 100);
}
public void reduce(String v) {
System.out.println(v+" .....");
}
}
public class MethodReference {
public static void main(String[] args) {
final Instance instance=Instance.create(Instance::new);
ArrayList<Integer> list=new ArrayList<Integer>();
list.add(10);
list.add(11);
list.add(12);
list.forEach(instance::plus);
ArrayList<String> strList=new ArrayList<String>();
strList.add("h");
strList.add("w");
strList.add("m");
strList.forEach(instance::reduce);
}
}
上面这个例子说明了当我们使用方法引用的时候,strList.forEach(instance::reduce);,strList.forEach()中的每个元素的就是instance.reduce()的入参,请保持这两者的数据类型相同