Java基础-java8新特性lambda表达式

本文深入讲解了Java中的Lambda表达式,包括其基本概念、应用场景,以及如何替代匿名内部类。探讨了Lambda表达式在声明函数式接口变量和作为方法参数的使用,并介绍了Java预定义的四大核心函数式接口。

1.lambda表达式的简单理解

简单来说,lambda表达式可以看做是用来替换匿名内部类的简便写法。

(x)->System.out.println(x);

左边是参数列表,右边是方法体。

2.lambda表达式的两种常见使用场景 

1.申明函数式接口变量的时候直接通过lambdab表达式来声明,然后通过引用来调用函数式接口中被lamdba表达式实现的的方法。

2.将函数式接口作为一个形参传入一个方法,在该方法中调用函数式接口的方法体,例如下面代码中的happy()方法。然后用另外的方法去调用happy()方法,在调用的时候传入lambda表达式作为函数式接口的实现。

一般来说第二种方法用的比较多,你可以在happy()方法中写另外的业务逻辑代码。

@FunctionalInterface
public interface MyInterface<T> {
    public boolean compare(T t );
}
public class ExampleForCsdn {
    @Test
    public void lambadaTest(){
        MyInterface<String> myInterface = (x)->x instanceof String;
        System.out.println(myInterface.compare("123"));
    }

    @Test
    public void lambdaTest2(){
        happy("123",(x)->x instanceof String);
    }

    public void happy(String a,MyInterface<String> myInterface){
        System.out.println(myInterface.compare(a));
    }
}

3.java本身定义的四大核心函数式接口

1.Consumer<T>:消费型接口,void accept(T t),有传入参数没有返回值

2.Supplier<T>:供给型接口,T get(),没有传入参数但是有返回值

3.Funcion<T>:函数型接口,R apply(T t),有参入参数和返回值

4.Predicate<T>:断言言接口,Boolean test(T t),有传入参数,返回值为boolean

4.总结与思考

只要用到匿名内部类的地方都可以使用lambda来替换。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值