Lamda表达式 Java基础使用笔记

Lamda表达式

1.函数式接口

一个接口只有一个方法。

2.Lamda使用

// 接口
interface TestLambda1 {
    void Hello();
}

//1.实现类
class MyLambda implements TestLambda1 {
    @Override
    public void Hello() {
        System.out.println("hello world1!");
    }
}

public class TestLambda {
    //2.静态内部类
    static class MyLambda2 implements TestLambda1 {
        @Override
        public void Hello() {
            System.out.println("hello world2!");
        }
    }

    public static void main(String[] args) {
        TestLambda1 myLambda = new MyLambda();
        myLambda.Hello();

        myLambda = new MyLambda2();
        myLambda.Hello();

        //3.局部内部类
        class MyLambda3 implements TestLambda1 {
            @Override
            public void Hello() {
                System.out.println("hello world3!");
            }
        }

        myLambda = new MyLambda3();
        myLambda.Hello();

        //4.匿名内部类
        myLambda = new TestLambda1() {
            @Override
            public void Hello() {
                System.out.println("hello world4!");
            }
        };
        myLambda.Hello();

        //5.Lambda表达式
        myLambda = () -> {
            System.out.println("hello world5!");
        };
        myLambda.Hello();

    }
}

3.基础语法

(params)-> expression [ 表达式 ]
(params)-> statement [ 语句 ]
(params)-> { statements }
//参数可以为空,但仍然需要提供括号
()-> System.out.println("haha");
//多行代码时需要用{}包裹,还可以使用return语句
(int x)->{ System.out.println(x);return x*x;}
//可以不指定的返回类型。返回类型总是会由上下文推导得出
(String first,String second)->first.length()-second.length();
//当参数类型可以通过上下文推导出来,参数类型可以省略
//比如下面,lambda表达式被赋值给一个字符串比较器,所以编译器可以推导出
//参数类型是String
Comparator<String> comp = (first,second)->first.length()-second.length();
//当参数只有一个,且类型可以由上下文推导而出的时候,小括号可以省略
ActionListener listener = event -> System.out.println("现在的时间为:"+new Date());
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值