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));
    }

如上 第三種一開始確實不好理解。。。但是代碼卻可以高復用,相比較簡介

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,991評論 19 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,523評論 25 708
  • 很堅定的早晨,抱著不要看小說的心理,開啟了讀書的征程。 翻頁2張后,心癢難耐,感覺即使擁有了知識也總是不圓滿。這種...
    水筆仔o12530閱讀 338評論 0 0
  • 好多人。
    知行合一致良知心性閱讀 163評論 0 0
  • 中秋佳節,沉浸在節日的氛圍中,有一刻在想今天寫什么樣的文章,在腦海中構思時發現,開始是之前的反思套路,當我意識到這...
    非寧靜無以致遠_淵寧閱讀 194評論 0 0