二、Lambda表达式
JDK8之后,java支持了lambda表达式这个特性.
lambda可以用更精简的代码创建匿名内部类.但是该匿名内部类实现的接口只能有一个抽象方法,否则无法使用!
lambda表达式是编译器认可的,最终会将其改为内部类编译到class文件中
代码案例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| package lambda; import java.io.File; import java.io.FileFilter;
public class LambdaDemo { public static void main(String[] args) { FileFilter filter = new FileFilter() { @Override public boolean accept(File pathname) { return pathname.getName().contains("o"); } }; FileFilter filter1 = (File pathname) -> { return pathname.getName().contains("o"); }; FileFilter filter2 = (pathname) -> { return pathname.getName().contains("o"); }; FileFilter filter3 = pathname -> { return pathname.getName().contains("o"); }; FileFilter filter4 = pathname -> pathname.getName().contains("o"); File file = new File("."); File[] files = file.listFiles(pathname -> pathname.getName().contains("o")); for (int i = 0; i < files.length; i++) { System.out.println(files[i]); } } }
|