javaSE--lambda

定义:

函数式接口是接口中只有一个抽象方法的接口。(

函数式接口可以使用 @FunctionalInterface 修饰

这个注解用来验证 此接口是否是函数式接口;

lambda表达式就相当于这个函数式接口的实现类的对象(他的本质就是一个匿名内部类)

当然lambda表达式必须依靠函数式接口

格式:

符号 -> 箭头符号:

左侧·:lambda参数列表(接口函数的参数列表)

右侧:lambda表达式所需执行的功能 即 lambda体

  例子:

无参,无返回值

()-> System.out.println("Hello Lambda");

public class TestLambda {

        @Test
        Runnable r=new Runnable(){
        @Override
        public void run(){
        System.out.println("Hello word")      
          } 
    
       }

r.run();

}


public class TestLambda {

        @Test
        Runnable r=()-> System.out.println("hello word");
        r.run();
}

有一个参数,无返回值:(若lambda 只有一个参数,小括号可以不写。)

//函数接口接口
public interface Consumer<T>{
void accept(T t);

}

//具体使用

@Test
public void test2(){
 Consumer<String> con=(x)->System.out.println(x);
con.accept("我ssssss");

}

有两个以上的参数,并且lambda体中有多条语句

@Test
public void test3()
{
    Comparator<Integer> com=(x,y)->{
            System.out.println("函数接口");
            return Integer.compare(x,y);

            };



}

如果lambda体中只有一条语句,大括号,return 可以省略



@Test
public void test3()
{
    Comparator<Integer> com=(x,y)->Integer.compare(x,y);
}
 

lambda表达式参数列表的数据类型可以不写,因为JVM编译器可以根据上下文推断出数据类型,即类型推断

 

总结:

上联:左右遇一括号省

下联:左侧推断类型省

 横批:能省则省   

                                ----------尚硅谷某东北教师           

右侧表达式只有一个return ,“return ”可以省;         

 

二、lambda 需要函数式接口的支持

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值