Lamda表达式

本文介绍了如何利用函数式接口和Lamda表达式简化Java编程,通过实例展示如何避免匿名内部类,提升代码整洁度。重点讲解了lamda表达式的使用条件、优点和不同实现方式,如静态内部类、局部内部类、匿名内部类和lamda简化形式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

函数式接口的定义:

任何接口只要只包含唯一一个抽象方法,那么它就是一个函数式接口
**使用条件:**函数式接口。
特点:

  1. 避免匿名内部类定义过多而催生;
  2. 实质属于函数式编程的概念
  3. 优点:避免匿名内部类定义过多
    让代码看起来更整洁
    去掉一堆没用的代码,减少冗余,留下核心的代码逻辑。

演变过程

public class Lamda_demo {
//    2、静态内部类
    static class Like2 implements ILike{
    @Override
    public void lamda() {
        System.out.println("我是通过静态内部类实现的方法~~");
    }
}
    public static void main(String[] args) {
        ILike like = new Like();
        like.lamda();
//        静态内部类实现
        like = new Like2();
        like.lamda();
//        3、局部内部类
        class Like3 implements ILike{
            @Override
            public void lamda() {
                System.out.println("我是通过局部内部类实现的方法~~");
            }
        }
        like = new Like3();
            like.lamda();

//            4、匿名内部类
        like = new ILike() {
            @Override
            public void lamda() {
                System.out.println("我是通过匿名内部类实现的方法~~");

            }
        };
        like.lamda();

//        5、用lamda简化
        like = () ->{
            System.out.println("我是通过lamda实现的方法~~");
        };
        like.lamda();
    }

}
//接口
interface ILike{
    void lamda();

}
//实现类
class Like implements ILike{
//1、实现接口
    @Override
    public void lamda() {
        System.out.println("我是通过接口实现的方法~~");
    }
}

简化

package Thread_demo8;
public class Lamda_demo2
{//main方法
    public static void main(String[] args) {
//      1  lamda表达式简化
        Ilove ilove= (int a)->{
            System.out.println("i love you"+a);
        };
        ilove.love(521);
//      2  简化参数类型
        ilove = (a) -> {
            System.out.println("i love you"+a);
        };
        ilove.love(520);
//        3  去掉花括号
        ilove = a->System.out.println("hello world!!" +a);
        ilove.love(99);
    }
}
//定义接口
interface Ilove {
    void love(int a);
}
//定义实现类
class Love implements Ilove{
    @Override
    public void love(int a) {

        System.out.println("I LOVE YOU --->"+a);
    }
}

总结
//lamda表达式只能有一行代码的情况下,才能简化成一行,,如果有多行,那么就用代码块包裹。
//前提是接口为函数式接口
//多个参数也可以去掉参数类型,要去掉就去掉,要保留就保留

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值