美文网首页
Lambda表达式2

Lambda表达式2

作者: ssttIsme | 来源:发表于2019-03-31 16:36 被阅读0次

Java Api中也有功能性接口

package lambdaDemo3;

import java.io.File;

public class TestLambda3 {
    public static void main(String[] args) {
        //Java API中的功能性接口
        Runnable r=()->System.out.println("run()");
        Thread t=new Thread(r);
        t.start();
        
        new Thread(()->System.out.println("run() ...")).start();;
        
        File dir=new File("c:/Windows");
        File[] files=dir.listFiles(file->file.getName().endsWith(".ini"));
        for (File f : files) {
            System.out.println(f);
        }
    }

}

运行结果

run()
run() ...
c:\Windows\msdfmap.ini
c:\Windows\psnetwork.ini
c:\Windows\system.ini
c:\Windows\win.ini

package lambdaDemo3;

import java.io.File;

public class TestLambda3 {
    public static void main(String[] args) {
        //Java API中的功能性接口
        Runnable r=()->System.out.println("run()");
        Thread t=new Thread(r);
        t.start();
        
        new Thread(()->System.out.println("run() ...")).start();;
        
        File dir=new File("c:/Windows");
        File[] files=dir.listFiles(file->file.getName().endsWith(".ini"));
        for (File f : files) {
            System.out.println(f);
        }
    }

}

还可对功能性接口加注解@FunctionalInterface
约定接口必须是功能性接口(接口里只能有一个方法)

@FunctionalInterface
interface Truck{
    int test(int a);
}
package lambdaDemo2;

public class TestLambda2 {
    public static void main(String[] args) {
    
        
        //使用Lambda作为参数
        test(a->a+4);

        
    }

    public static void test(Truck truck){
        System.out.println("TestLambda.test(Truck truck)");
        System.out.println(truck.test(6));
    }
}
//功能性接口
@FunctionalInterface
interface Truck{
    int test(int a);
}

运行结果

TestLambda.test(Truck truck)
10

相关文章

网友评论

      本文标题:Lambda表达式2

      本文链接:https://www.haomeiwen.com/subject/xxlubqtx.html