JDK8中有双冒号的用法,就是把方法当做参数传到stream内部,使stream的每个元素都传入到该方法里面执行一下
public class StreamTest13 { public static void printValue(String str){ System.out.println("元素值为:"+str); } public static void main(String[] args) { List<String> al = Arrays.asList("a","b","c","d"); // 将方法作为参数传入 Consumer<String> consumer = StreamTest13::printValue; al.stream().forEach(p ->{ // JDK8中增加的接口Consumer内的accept方法,执行传入的方法参数 consumer.accept(p); }); } }