lambda表达式

接口类只有一个抽象方法,才可以使用lambda表达式

package com.lambda;

public class lambdaTest {
    public static void main(String[] args) {
  //向上转型  实现接口类对象的引用赋值给接口对象
        iWant iwant=new Want();
        //1.lambda表达式练习  
        iwant=(String a)-> {System.out.println("我曾想~~~~");
            System.out.println("我曾想"+a);};
        iwant.want("弹钢琴");

    }
}

interface  iWant{
    public abstract void want(String a);
}
class Want implements iWant{
    @Override
    public void want(String a) {
    }
}

1.当代码块中只有一条语句时,可以去掉大括号

iWant iwant=new Want();
iwant=(String a)->  System.out.println("我曾想"+a);
        iwant.want("唱歌");

2.当只有一个形参,可以去掉参数类型和括号

iWant iwant=new Want();
iwant= a->  System.out.println("我曾想"+a);
        iwant.want("跳舞");

3.当含有两个参数时,不能省略括号,可以省略参数类型

iWant iwant=new Want();  
       iwant= (a,b)-> {
          System.out.println("我曾想"+a);
           System.out.println("我曾想"+b);
       };
        iwant.want("rap","打篮球");

posted @ 2022-12-07 11:51  微风抚秀发  阅读(19)  评论(0)    收藏  举报