lambda表达式

/**
 * lambda表达式   JDK8推出的特性
 * 
 * lambda可以以更简短的方式创建匿名内部类
 * 
 * 语法:
 * ([实际参数])->{
 *     方法体
 * }
 * 
 * 需要注意,使用lambda创建的匿名内部类所实现的接口只能
 * 有一个抽象方法。
 * @author Administrator
 *
 */
public class LambdaDemo1 {
    public static void main(String[] args) {
        Runnable r1 = new Runnable() {
            public void run() {
                System.out.println("hello");
            }
        };
        Runnable r2 = ()->{
            System.out.println("hello");
        };
        /*
         * 如果该方法只有一句代码,那么方法的"{}"可以
         * 省略不写。
         */
        Runnable r3 = ()->System.out.println("hello");  
    }
}
public class LambdaDemo2 {
    public static void main(String[] args) {
        File file = new File(".");
        /*
         * 获取当前目录下所有文本文件
         */
        FileFilter filter = new FileFilter() {
            public boolean accept(File file) {                
                return file.getName().endsWith(".txt");
            }            
        };
        File[] subs = file.listFiles(filter);
        for(File sub : subs) {
            System.out.println(sub.getName());
        }
         /*
         * 获取所有.dat文件
         */
        //FileFilter filter1 = (f)->{                
        // return f.getName().endsWith(".dat");            
        // };
        /*
         * 若可以忽略"{}",那么若当前方法有返回值时,
         * return关键字也需要省略。
         */
        FileFilter filter1= (f)->f.getName().endsWith(".dat");            
        subs = file.listFiles(filter1);
        for(File sub : subs) {
            System.out.println(sub.getName());
        }    
    }
}

 

posted @ 2020-01-31 20:54  一场屠夫的战争  阅读(130)  评论(0编辑  收藏  举报