java|java 函数式编程小记
【java|java 函数式编程小记】stream api比较简单
函数式接口的设计 不是很好理解,记一个复杂的情况
@FunctionalInterface
public interface ProductSpec {
boolean satisfy(Long p);
// 此处的p 是satisfy的参数p
static ProductSpec color(BigDecimal decimal) {
return p -> p.longValue() == decimal.longValue();
}}public void testSatisfy(ProductSpec productSpec) {
productSpec.satisfy(111L);
}public void test() {
BigDecimal bigDecimal = new BigDecimal(12);
// 第一种
testSatisfy(new ProductSpec() {
@Override
public boolean satisfy(Long p) {
return p.longValue() == bigDecimal.longValue();
}
});
// 第二种
testSatisfy(p -> p.longValue() == bigDecimal.longValue());
// 第三种
testSatisfy(ProductSpec.color(bigDecimal));
}
如上 第三种一开始确实不好理解。。。但是代码却可以高复用,相比较简介
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 事件代理
- 一起来学习C语言的字符串转换函数
- C语言字符函数中的isalnum()和iscntrl()你都知道吗
- Java|Java OpenCV图像处理之SIFT角点检测详解
- C语言浮点函数中的modf和fmod详解
- C语言中的时间函数clock()和time()你都了解吗
- java中如何实现重建二叉树
- 数组常用方法一
- 【Hadoop踩雷】Mac下安装Hadoop3以及Java版本问题