java 函数式编程简单例子

自定义函数接口 采用@FunctionalInterface,如 我们定义个 参数T,返回结果为R的自定义函数

@FunctionalInterface
public interface MyFunction<T, R> {

  R sum(T t1,T t2);
}

测试代码  这里顺便测试下jdk自带的函数接口

public class FunctionTest {

    //自定义函数接口
    public static int sumDef(int a,int b,MyFunction<Integer,Integer> myFunction){
        return  myFunction.sum(a,b);
    }

    //含有一个参数的函数
    public static int sumU(int a,UnaryOperator<Integer> d){
        return d.apply(a);
    }

    //含有多个参数的函数
    public static int sumB(int a,int b, BinaryOperator<Integer> d){
        return d.apply(a,b);
    }

    //生产者
    public static int sumS(Supplier<Integer> s){
        return s.get();
    }

    //消费者
    public static void sumC(int a,Consumer<Integer> c){
         c.accept(a);
    }

    //输入T,输出R的函数
    public static int sumF(int a,Function<Integer,Integer> f){
        return f.apply(a);
    }

    //断言
    public static boolean predicate(int a,Predicate<Integer> p){
        return p.test(a);
    }
    public static void main(String[] args) {
        System.out.println(sumDef(2,6,(x,y)->{
            return x+y;
        }));
        System.out.println(sumU(5,x->{
            return x+10;
        }));
        System.out.println(sumB(5,6,(x,y)->{
            return x+y;
        }));

        System.out.println(sumS(()->{
                return 99;
        }));
        sumC(2,(x)->{
            System.out.println(x+10);
        });

        System.out.println(sumF(2,t->{
            return t+9;
        }));

        System.out.println(predicate(2,t->{
            return t>1;
        }));

    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值