简述Lambda表达式作用与用法

        1.背景

           在JDK8.0中,JVM新增加了一个代码语法功能:Lambda表达式,其实质是希腊第十一个字母“λ”。由于在Java的实际项目开发中,很多时候根据设计模式的不同,大多选择的是遵循面向接口去创建的原则,所以,Lambda也是专门被用于在某些设计模式中简化代码的一个重要途径。

          2.条件约束

            Lambda表达式针对的是函数式接口。函数式接口指的是只包含一个抽象方法的接口,换句话说,该接口代表的就是这种方法。例如run()方法就是Runnable接口中唯一的抽象方法。可以设想以下,假如你有多个类都需要实现同一个函数式接口,说是实现接口,可该接口又只有一个类,说来说去也只是相对于多态的意思。若是普通做法,这时你一一创建多个类去实现该接口,并且一一创建类对象才能实现调用,非常麻烦。而Lambda,便是做到了免去了多个类创建的麻烦(同时匿名),实现接口并同时可以调用其中方法的过程

           3.表达式

             一般常用的lambda表达式子分为以下几种情况:

                 

//实现Runnable接口

//普通实现接口方法:


    class Test1 implements Runnable{

             public void run(){


               System.out.println("我是普通创建方法!");

}


   public static void main(String[] args){
              
           //第一种操作
             Test1 test1=new Test();
             new Thread(test).start();//创建实现类对象,抛入Thread构造器中,并启动线程;

           //第二种操作:Lambda表达式(这边线程类Thread是已经实现了Runnable接口了的)

              new Thread(()->{System.out.println("我是Lambda创建方法!");}).start();    
            //上述等价于:

           new Thread(new Runnable() {
			  
			  public void run() {
				  
				  System.out.println("i am method1!!");
			  }
			 
		 }).start();

                            
  

}




}


上面是线程类的,若没有学过多线程可能会难以理解;

    还有下述这种通用的面向函数式接口的实现:

         

interface Ilike{
	
	public void lambda(String a);
}



public class Lamda2 implements Ilike {

	 public void lambda(String a) {
		 
		 System.out.println("i am lambda1!!");
		 
	 }//普通重写Run方法(在类中重写)
	    
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
         //第一种 
		Ilike like=(a)->System.out.println("i am lambda2!");//Lambda表达式,实现并同时调用

           //第二种
		Ilike like2=new Lamda2();//创建实现类对象
	    like2.lambda("i am lambda3!");//调用方法
		like.lambda("2");

	}

}

            通过比较,可以看出lambda表达式进行了大量的代码简化,也能用于优化匿名内部类、局部内部类。

           3.总结

             优点:

              (1)避免匿名内部类定义过多

              (2)可以让代码看起来更简洁

              (3)去掉了一堆没有意义的代码,只留下核心的逻辑

              本质:

               (1)创建函数式接口对象并通过接口对象实现接口方法并调用的简洁方法。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蜗牛变涡流

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值