Java 8中的lambda表達式

Java 8中新增了lambda表達式 簡單的經過代碼分析一下lambda表達式的簡單用法。ide

interface Print{
void print(String val);
}
//第三個例子
interface IPrint{
    void print();
}
public class LambdaDemo {
    public static void main(String args[]){
        LambdaDemo L=new LambdaDemo();
        String some="打印輸出";

        /*不用lamda表達式的常規方法*/
//        Print print=new Print() {
//            @Override
//            public void print(String val) {
//                System.out.println(val);
//            }
//        };
        /*標準的lamda表達式*/
//        Print print=(String val)->{
//            System.out.println(val);
//        };

        /*這裏是由於只有一個參數*/
        Print print=val -> System.out.println(val);

        L.PrintSomething(some,print);
        /*還能夠直接放在語句中*/
        L.PrintSomething(some,val -> System.out.println(val));

        /*第二個例子*/
        LambdaDemo t=new LambdaDemo();
        LambdaDemo.IAdd s=((x, y) -> x+y);
        System.out.println(t.add(1,2,s));

        /*第三個例子*/
        //        IPrint t =new IPrint(){
//            @Override
//            public void print() {
//                System.out.println("匿名函數實現");
//            }
//        };
//        t.print();
        //這是使用匿名函數調用接口中的方法
    
        IPrint w=()->{System.out.println("匿名函數的lambda實現");};
        w.print();
        /*lambda表達式最重要的就是省去了匿名對象的繁雜,使代碼更加簡潔*/
    }
    public void PrintSomething(String something,Print print){
        print.print(something);
    }
    /*第二個例子*/
    public int add(int x, int y, LambdaDemo.IAdd iAdd){
        return iAdd.sum(x, y);
    }
    interface IAdd {
        int sum(int x, int y);
    }
}
相關文章
相關標籤/搜索