美文网首页
java 函数式编程小记

java 函数式编程小记

作者: 砺豪 | 来源:发表于2017-05-04 23:34 被阅读17次

    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 函数式编程小记

          本文链接:https://www.haomeiwen.com/subject/srfjtxtx.html