了解java的lambda表达式

lambda更加简化了我们的代码,让我看来其实就是省去了去写实现类或匿名实现类的过程;

1.一个简单的实现自定义lambda

    @FunctionalInterface
    interface Excutor2 {
        int run(int a ,int b);
    }

首先@FunctionalInterface注释,是约束满足函数式接口;其中约束为只能有一个public的方法;

    @Test
    public void t3(){
        Excutor2 ee = (a,b)->{
            System.out.println(1111);
            return a+b;
        };
        int run = ee.run(1, 2);
        Excutor2 ee2 = (a,b)->a-b;
        int run2 = ee2.run(1, 2);
    }

以上就是使用自定义的lambda,很简单,如果不使用的话,则需要我们编写实现类,调用实现类引用方法,或者写匿名实现类;

    Excutor2 e3 = new Excutor2() {
            @Override
            public int run(int a, int b) {
                return a * b;
            }
        };

 

2.实现一个foreach表达式:

public class TestForeach {

    class MyList<T> {
        List<T> list = new ArrayList<>();

        MyList add(T t) {
            list.add(t);
            return this;
        }

        void foreach(Excutor t) {
            for (T tt : list) {
                t.run(tt);
            }
        }
    }

    @FunctionalInterface
    interface Excutor {
        void run(Object t);
    }
}
    @Test
    public void t() {
        MyList m = new MyList();
        m.add(1).add(2).add(3);
        m.foreach(a->{
            System.out.println(a);
        });
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值