zoukankan      html  css  js  c++  java
  • Lambda表达式(1)

      今天复习Lambda表达式,因为这个是java8的新特性,所以JDK和IDE弄了好久,现在才刚弄好。

      Lambda表达式是java8的新特性,支持将代码块作为方法参数,Lambda表达式允许使用更简洁的方式来创建只有一个抽象方法的接口(函数式接口)的实例,其中,被大家都知道的就是使用Lambda表达式创建Thread实例。这种方式大大简洁化了大家的代码。

      Lambda表达式由三部分组成,形参列表,箭头"->",代码块。其中,形参列表允许省略形参类型,如果只有一个新参,甚至形参列表的圆括号也可以省略。箭头必须使用英文的画线和大于号。代码块就是处理行为,才某些特殊情况下,可以省略花括号和return关键字。

      下面就一个简单例子来具体说一下,代码如下:

    package LambdaTrain;
    
    public class demo1 
    {
    	/*
    	 * 测试使用的代码,分别要传入各自的参数
    	 */
    	public void eat(Eatable e)
    	{
    		System.out.println(e);
    		e.taste();
    	}
    	public void drive(Flyable f)
    	{
    		System.out.println("我正在驾驶:"+f);
    		f.fly("【碧空如洗的日子】");
    	}
    	public void test(Addable add)
    	{
    		System.out.println("5与3的和为:"+add.add(5, 3));
    	}
    	/*
    	 * 主方法,其中的方法参数都是使用lambda表达式
    	 */
    	public static void main(String[] args)
    	{
    		demo1 demo1=new demo1();
    		//lambda表达式的代码只只有一句,可以省略“{}”
    		//这里的lambda表达式实际上被当成任意的类型,具体的类型取决于运行环境的需要
    		demo1.eat(()->System.out.println("苹果的味道不错"));
    		//方法的形参只有一个,可以省略“()”  weather是接口方法的形参
    		demo1.drive(weather->{
    			System.out.println("今天的天气是:"+weather);
    			System.out.println("直升机飞行平稳");
    		});
    		//代码只有一句,可以省略“{}”,同时也可以省略return关键字 a+b是返回值
    		demo1.test((a,b)->a+b);
    		
    	}
    
    }
    /*
     * 测试使用的接口,只有一个抽象方法的接口(函数式接口)
     */
    interface Eatable
    {
    	void taste();
    }
    interface Flyable
    {
    	void fly(String weather);
    }
    interface Addable
    {
    	int add(int a,int b);
    }
    

      上面就是例子的代码,有一些不懂的地方都写了注释了。Lambda表达式其实只是一个工具,具体的学习还是要和其他的学习放在一起,比如线程的学习中会用到Lambda表达式。就这样吧,结束。

  • 相关阅读:
    如何在Linux下的C++文件使用GDB调试
    21天学通C++(C++程序的组成部分)
    嵌入式Linux应用程序开发
    项目部署的问题
    未解决
    报错
    随笔
    逆向工程出现的错误1
    jpa学习
    springmvc整合mybaits
  • 原文地址:https://www.cnblogs.com/yanyu01/p/9029453.html
Copyright © 2011-2022 走看看