JavaSE8新特性——lambda表达式1

  1. 广义上,带有参数变量的表达式都被称为lambda表达式。java中lambda表达式是一段可以传递的代码。它可能不会被立即执行。
  2. java中类似lambda代码块的常见方式:
    • 线程的run代码块
    • 比较器比较方法代码块
    • 回调 ex:按钮的点击事件回调代码块
  3. 原来的代码块实现方法比较臃肿,而且lambda表达式是当前比较时髦的函数式编程语言的特性
  4. lambda表达式的格式:
    • (param1,param2) -> {dowork();}
    • param的对象类型一般不用声明。param可空。
    • 当有返回值而代码块只有一个简单语句时,可以不明确使用return,编译器会使用该简单语句的返回值作为返回值,可见条目6的代码
  5. lambda表达式使用场景:需要一个单一方法的接口的实现类的对象。
    • 下面的代码定义了一个Runnable的对象,可以对比传统实现方法
    • Runnable printer = () -> {System.out.println(“from lambda”);};
  6. 如果表达式已经被实现过,不需要自己再重复实现:

    interface GetMax{
        int getTheMax(int a,int b);         
    }           
    //要实现上述接口的一个对象如下            
    GetMax getter = Math::max;
    //等同于
    GetMax getter2 = (x, y) -> {return Math.max(x, y);};
    //省略return
    GetMax getter3 = (x, y) -> Math.max(x, y);
    
    • 可以使用的情况包括:对象的实例方法,类的静态方法,类的实例方法(eclipse4.4编译不通过)。
  7. lambda表达式可以直接使用lambda表达式外面的局部变量,但是不能对其进行修改。

    public static void repeatMessage(String text, int count) {
        Runnable r = () -> {
            System.out.println(text);//正常
            count++;//报错
        };
        new Thread(r).start();
    }
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值