如何写个让别人能用lambda往里塞的…

本文介绍如何在自定义类中使用Java 8的Lambda表达式,通过Function、Predicate和Consumer接口实现对列表元素的操作,包括计算函数值、条件判断及执行特定操作。

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

  最近函数式编程很火,大家都开始各种用lambda表达式。我们如何让别人也在我们自己写的类里面用lambda表达式呢?换句话说,我们要造一个输入lambda表达式的成员函数,或者静态函数,怎么办?其实仔细分析,大多数调用lambda表达式,都是基于原来的固定接口Function、Predicate和Comsumer(如foreach接口),那么我们相应调用就好。



import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Predicate;

public class 函数式编程 {
    static int[] list={1,2,3,4,5,6,7,8,9,10};
    
   
    public static void 输出函数1到10的值(Function<Integer, Double> f){
        for(int i:list){
            System.out.println(i+" "+f.apply(i)+" ");
        }
    }

   
    public static void 判断(Predicate<Integer> p){
        for(int i:list){
            System.out.println(i+" "+(p.test(i)?"true":"false"));
        }
    }

   
    public static void 取列表的东西做某些事(Consumer<Integer> c){
        for(int i:list){
            c.accept(i);
        }
    }
}


之后我们就可以在函数体里面这么用啦:
函数式编程.输出函数1到10的值(
        (a)-> ((double)(a*a))/5+((double)a)/3
);
函数式编程.判断(
        (p)-> p%2==1
);
函数式编程.取列表的东西做某些事((i)->{
    System.out.println("输出i=="+i);
});



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值