Lamda表达式

1、Lambda简介

简介:

Lambda表达式是JDK8的一个新特性,可以取代大部分的匿名内部类,写出更优雅的java代码,尤其在集合的遍历和其他集合操作中,可以极大地优化代码结构;

理解Functional Interface(函数式接口)是学习java8 lambda表达式的关键所在

函数式接口:

函数式接口的定义:

任何接口,如果只包含唯一一个抽象方法,那么他就是一个函数式接口。

// 例子
public interface Runnable{
	public abstract void run();
}

​ ps: 也就是说接口里面只有一个方法就是 函数式接口

​ ps:jdk 8 中有另一个新特性:default,被default 修饰的方法会有默认实现,不是必须被实现的方法,所以不影响lambda表达式的时候用。

1、Lambda基本语法

实例:

interface Dog{
    // 普通方法
    void eat();
}
interface Cat{
    // 带参数方法
    void eat(String foot);
}
interface fish{
    // 带参带返回值方法
    String eat(String foot);
}
interface Pig{
    // 带返回值方法
    String eat();
}

实现:

public class TestLambda2 {
    public static void main(String[] args) {
        // 普通方法
        Dog dog = () -> {
            System.out.println("狗喜欢吃骨头");
        };
        dog.eat();
        // 带参数方法
        Cat cat = (foot) -> {
            System.out.println("猫喜欢吃"+foot);
        };
        cat.eat("猫");
        // 带参返回值方法
        fish fish = (foot) -> {
            System.out.println("鱼喜欢吃"+foot);
            return "鱼";
        };
        fish.eat("蛆");
        // 带返回值方法
        Pig pig = () ->{
            System.out.println("猪吃猪食");
            return "猪";
        };
        pig.eat();

    }

}

简化代码:

public class TestLambda2 {
    public static void main(String[] args) {
        
        // 简化1、去掉参数类型  多个参数情况下,都不写参数类型
        Cat cat = (foot) -> {
            System.out.println("狗喜欢吃"+foot);
        };
        cat.eat("鱼");

        // 简化2、简化括号  只有一个参数时可以去掉
        fish fish = foot -> {
            System.out.println("狗喜欢吃"+foot);
            return "1";
        };
        fish.eat("馒头");

        // 简化3、简化花括号  只有一个方法体,并且只有一行语句,则可以省略
        Dog dog = () -> System.out.println("够喜欢吃骨头");
        dog.eat();

        // 简化4、简化花括号  如果是return语句,只有一行返回值,则可以省略;
        Pig pig = ()-> "测试";
        pig.eat();
    }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值