Lambda表达式入门

  Lambda表达式是Java 8的重要更新,也是一个被广大开发者期待已久的新特性,Lambda表达式支持将代码块作为方法参数,Lambda表达式允许使用更简洁的代码来创建只有一个抽象方法的接口(这种接口被称为函数式接口)的实例。

  Lambda表达式的主要作用就是代替匿名内部类的烦琐语法,它由三部分组成:

  1、形参列表(参数),形参列表允许省略形参类型。如果形参列表中只有一个参数。甚至连形参列表的圆括号也可以省略;

  2、箭头(->),必须通过英文中划线号和大于号组成;

  3、代码块,如果代码块中只有一条语句,Lambda表达式允许省略代码块的花括号;Lambda代码块只有一条return语句,甚至可以省略return关键字,Lambda表达式自动返回这条语句的返回值;

import static java.lang.System.*;
interface Eatable{
	void taste();
}
interface Flyable{
	void fly(String weather);
}
interface Addable{
	int add(int a,int b);
}
public class LambdaQs{
	public void eat(Eatable e){
		out.println(e);
		e.taste();
	}
	public void drive(Flyable f){
		f.fly("helicopter");
		out.println("我正在驾驶:"+f);
	}
	public void test(Addable add){
		out.println("5与3的和为:"+add.add(5,3));
	}
	public static void main(String []args){
		LambdaQs lq=new LambdaQs();
		lq.eat(()->out.println("苹果的味道尝起来不错哦!"));
		lq.drive(weather->out.println("今天的天气是:"+weather));
		lq.test((a,b)->a+b);
	}
}

  

时间: 2024-08-03 02:59:51

Lambda表达式入门的相关文章

Java8 Lambda表达式入门

Lambda表达式的实质就是一个匿名函数.C#3.0引入了Lambda表达式,Java8也不甘示弱.Java8发布很久了,今天安装了JDK体验了Java8中的Lambda表达式. 首先看一个不适用Lambda表达式的例子. 比如我们要对一组字符串进行排序. public class Hello { public static void main(String[] args) { List<String> names = Arrays.asList("Tan", "

Java Lambda表达式入门[转]

原文链接: Start Using Java Lambda Expressions http://blog.csdn.net/renfufei/article/details/24600507 下载示例程序 Examples.zip .原文日期: 2014年4月16日 翻译日期: 2014年4月27日翻译人员: 铁锚简介(译者注:虽然看着很先进,其实Lambda表达式的本质只是一个"语法糖",由编译器推断并帮你转换包装为常规的代码,因此你可以使用更少的代码来实现同样的功能.本人建议不要

Java Lambda表达式入门

原文链接: Start Using Java Lambda Expressions 下载示例程序 Examples.zip . 原文日期: 2014年4月26日 翻译日期: 2014年4月27日 翻译人员: 铁锚 简介 (译者注:虽然看着很先进,其实Lambda表达式的本质只是一个"语法糖",由编译器推断并帮你转换包装为常规的代码,因此你可以使用更少的代码来实现同样的功能.本人建议不要乱用,因为这就和某些很高级的黑客写的代码一样,简洁,难懂,难以调试,维护人员想骂娘.) Lambda表

java8之lambda表达式入门

1.基本介绍 lambda表达式,即带有参数的表达式,为了更清晰地理解lambda表达式,先上代码: 1.1 两种方式的对比 1.1.1 方式1-匿名内部类 class Student{ private String name; private Double score; public Student(String name, Double score) { this.name = name; this.score = score; } public String getName() { ret

C++学习:lambda表达式入门

引言:lambda表达式在STL应用中可以让我们起到十分便捷的功能,我们看下微软的解释. When you write code, you probably use function pointers and function objects to solve problems and perform calculations, especially when you use STL algorithms. Function pointers and function objects have

9.Lambda表达式入门

一.lambda表达式的优点: 1. 不需要指出重写的方法名字 2.不需要给出重写方法的返回值类型--只需要给出重写的方法括号及括号里的形参表即可 3.当使用lambda表达式代替匿名内部类创建对象时,lambda表达式的代码块将会代替实现抽象方法的方法体,lambda表达式就相当于一个匿名方法 介绍使用:                   1.lambda表达式的代码值包含一条语句,lambda表达式允许省略代码块的花括号                      2.形参列表中只有一个参数

JAVA 8 主要新特性 ----------------(三)新功能Lambda表达式入门

一.简述 Java为了扩充匿名方法在1.8中新追加的特性.本身Java之前的版本是没有匿名方法的,只有匿名对象. 二.使用 Java中使用匿名方法必须要对应接口中的一个抽象方法.(要有一个匿名方法,需要函数去接收它) 三.为什么使用 Lambda 表达式 Lambda 是一个匿名函数,我们可以把 Lambda 表达式理解为是一段可以传递的代码(将代码像数据一样进行传递).可以写出更简洁.更灵活的代码.作为一种更紧凑的代码风格,使Java的语言表达能力得到了提升. 四.实例一:从匿名类到 Lamb

Java8新增的Lambda表达式

Lambda表达式支持将代码块作为方法参数,Lambda表达式允许使用更简单的代码来创建只有一个抽象方法的接口(这种接口被称为函数式接口)的实例. 5.8.1 Lambda 表达式入门 Command.java package code; public interface Command { // 接口里定义的process()方法用于封装"处理行为" void process(int[] target); } ProcessArray.java package code; publi

java之Lambda表达式

一.Lambda表达式入门 我们先来看一段代码:匿名内部类的方式实现参数的传递 interface Command{ public abstract void test(); } public class CommandTest { public void show(Command c) { c.test(); } public static void main(String[] args) { CommandTest ct=new CommandTest(); ct.show(new Comm