Lambda表达式

Lambda表达式的使用前提:

  • 有一个接口
  • 接口中有且仅有一个抽象方法

(参数)->{

要做的内容

}

练习1(无参数,无返回值)

//接口
public interface Eableimp {
    void eat();
}
//接口的实现类
public class Eable implements Eableimp {
    @Override
    public void eat() {
        System.out.println("一天一苹果,医生远离我");
    }
}

 1、实现类的方式:

public class EatableDemo {
    public static void main(String[] args) {

        Eatable e=new EatableImpl();
        useEatable(e);
    }


    public static void useEatable(Eatable eatable){

       eatable.eat();
    }
}

 2、匿名内部类

public class EatableDemo {
    public static void main(String[] args) {

        
        useEatable(new Eatable() {
            @Override
            public void eat() {
                System.out.println("一天一苹果,医生远离我!");
            }
        });
    }


    public static void useEatable(Eatable eatable){
        eatable.eat();
    }
}

3.Lambda表达式

public class EatableDemo {
    public static void main(String[] args) {


      useEatable(()->{

          System.out.println("一天一苹果,医生远离我!");
      });
    }


    public static void useEatable(Eatable eatable){
        eatable.eat();
    }
}

练习2(带参数,无返回值)


public interface fly {
    void flying(String s);
}
package com.ylh4Y16;

public class flyDemo {
    public static void main(String[] args) {
        //匿名内部类
        flyable(new fly() {
            @Override
            public void flying(String s) {
                System.out.println(s);
                System.out.println("汽车自驾游");
            }
        });
        System.out.println("--------------------------");
        //Lambda
        flyable((String s)->{
            System.out.println(s);
            System.out.println("飞机自驾游");
        });
    }


    private static void flyable(fly f){
        f.flying("风和日丽,晴空万里");
    }}

练习3(带参数,带返回值) 

//接口
public interface abbable {
    int add(int a, int b);
}
public class addDemo {
    public static void main(String[] args) {
//Lambda
        sum((int x,int y)->{
            return x+y;

        });
    }
    private static void sum(abbable a){
      int sum=a.add(10,20);
        System.out.println(sum);
    }
}

 Lambda的省略


public interface abbable {
    int add(int a, int b);
}
public interface fly {
    void flying(String s);
}
//Lambda注意事项
//1.使用Lambda表达式必须要有接口,并且接口中只有一个抽象方法
//2.必须要有上下文环境,才能推导出Lambda对应的接口
public class addANDfly {
    public static void main(String[] args) {
        flyable(s->
            //给出的参数类型可以省略,如果有多个参数不能只省略一个
            //如果只有一个参数,()可以省略
            //如果只有一行语句,{;}可以省略
                System.out.println(s)
        );

    sumable((x,y)->//如果有return,return也要省略
         x+y
    );
    }

    private static void flyable(fly f){
        f.flying("晴空万里,风和日丽");
    }
    private static void sumable(abbable a){
       int sum= a.add(10,20);
        System.out.println(sum);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值