lambda(替代匿名类)

本文对比了Java 8中Lambda表达式与匿名内部类的使用方法,并详细解释了Lambda表达式的构成及其适用条件。通过具体示例展示了如何利用Lambda简化代码。

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

jdk1.8匿名内部类之前的写法

public class Lambda {

    public static void main(String[] args) {
        //匿名内部类
        School school = new School() {
            @Override
            public void run(String jdk) {
                System.out.println("这是jdk"+jdk+"的特性");
            }
        };
        school.run("彭守星");
    }
}
interface School{
    public void run(String name);
}

jdk1.8的写法(lambda表达式)

package com.test.new8;

public class Lambda {

    public static void main(String[] args) {
        School school=(String name,int age) -> {return name;}; 
        String run = school.run("11", 16);
        System.out.println(run);


    }
}
@FunctionalInterface
interface School{
    public String run(String name,int age);
}

lambda注意事项

  • Lambda表达式只能针对函数式接口使用(函数式接口:接口里只有一个抽象方法),使用注解(@FunctionalInterface)可以强制接口是函数式接口。
  • Lambda 表达式由三个部分组成:第一部分为一个括号内用逗号分隔的形式参数,参数是函数式接口里面方法的参数;第二部分为一个箭头符号:->;第三部为方法体,可以是表达式和代码块。
(parameters) -> expression ##一条语句的时候
(parameters) -> { statements; } ##多条语句的时候,需要return返回值的时候
() -> { statements; } ##没有参数
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值