上代码:
import java.util.Arrays;
import java.util.List;
import java.util.function.Consumer;
public class Java8MaoHao {
public static void printValur(String str){
System.out.println("打印字符串 : "+str);
}
public static void main(String[] args) {
List<String> al = Arrays.asList("a","b","c");
//1、传统的增强循环遍历
for (String xx:al) {
Java8MaoHao.printValur(xx);
}
System.out.println("======万能的分割线1111=======");
//2、改进的表达式
al.forEach(zz->{
Java8MaoHao.printValur(zz);
});
System.out.println("======万能的分割线2222=======");
//3、双冒号表达式
al.forEach(Java8MaoHao::printValur);//将方法当做参数传递过去
//下面的方法和上面等价的
System.out.println("==========等价输出3333=========");
Consumer<String> methodParam = Java8MaoHao::printValur;//方法参数
al.forEach(x -> methodParam.accept(x));//方法执行accept
}
}
执行结果:
打印字符串 : a
打印字符串 : b
打印字符串 : c
======万能的分割线1111=======
打印字符串 : a
打印字符串 : b
打印字符串 : c
======万能的分割线2222=======
打印字符串 : a
打印字符串 : b
打印字符串 : c
==========等价输出3333=========
打印字符串 : a
打印字符串 : b
打印字符串 : c