lambda表达式学习(详细理解 ) 重点在最后

多线程的runable接口,如果你的代码简单就可以用lambda简化

package cn.com.zzn.lambda;

public class TestLambda2 {
//    静态内部类
   /* static class Like implements ILove{
    @Override
    public void love(int a) {
       System.out.println("i love you"+"--->"+a);

    }*/
    public static void main(String[] args) {
        ILove iLove = null;
//        局部内部类  就是把类放在方法里面  根静态内部类一样通过 new Like().love(520);调用
/*        class Like implements ILove{
            @Override
            public void love(int a) {
                System.out.println("i love you"+"--->"+a);
            }
    }*/
//        匿名内部类 :通过new接口去实现
/*       ILove iLove =  new ILove() {
            @Override
            public void love(int a) {
                System.out.println("i love you"+"--->"+a);
            }
        };
       iLove.love(520);*/

//        lambda表达式就是匿名内部类的简写
 /*       ILove iLove = (int a)->{
            System.out.println("i love you"+"--->"+a);
        };
        iLove.love(520);*/
//        简化1. 简化参数类型
    /*    iLove = (a) -> {
            System.out.println("i love you"+"--->"+a);
        };
        iLove.love(521);*/
//        简化2 .简化括号
      /*  iLove = a -> {
            System.out.println("i love you"+"--->"+a);
        };
        iLove.love(521);*/
//        简化3  去掉花括号
        iLove = a -> System.out.println("i love you"+"--->"+a);System.out.println("dadasda");
        iLove.love(523);
    }
}
//外部类
/*class Like implements ILove{
    @Override
    public void love(int a) {
       System.out.println("i love you"+"--->"+a);
    }
}*/
interface ILove{
    void love(int a);
}
/**重点加总结
 * 1.lambda表达式只能有一行代码的情况下才能简化成为一行,如果有多行,那么就用代码块包裹
 * 2.前提是接口为函数式接口(只定义了一个方法的接口)
 * 3.多个参数也可以去掉参数类型,要去掉都去掉,必须加上括号
 * ***/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值