CollectionUtils中的Transformer和Closure使用方法

Transformer至關於一個轉換器,在java中也是一個接口,入參是一個object,出參是調用transform方法返回的一個objecthtml

Collectionutils中有2個相關方法是關於transformer的一個是collect,一個是transform,從調用方法上沒看到兩者有什麼異常,我的理解是對空值的處理不一樣java

List<Integer> testList=new ArrayList<Integer>(){
            {
                add(1);
                add(2);
                add(3);
            }
        };        

        Collection resultTransform=CollectionUtils.collect(testList,i->{
            return "test"+i;
        });

        CollectionUtils.transform(testList,i->{
            return "test"+i;
        });

當讓也能夠使用transformerUtils直接使用現成的transformapache

Collection resultTransformWithTransformer=CollectionUtils.collect(testList, TransformerUtils.nullTransformer());

 

Closure指的是閉包,也是一個名字叫Closure的接口,並經過實現excute的方法。CollectionUtils下有一個forAllDo的方法使用這個參數api

使用的方法以下閉包

CollectionUtils.forAllDo(testList,i->{
            System.out.println(i);
            //並不會改變list
            i=0;
        });

ClosureUtils下還有一些經常使用的ifClosuse(二選一),whileClosure(先判斷再執行),ChainedClosure(鏈式執行)code

參考文檔:https://commons.apache.org/proper/commons-collections/javadocs/api-3.2.2/org/apache/commons/collections/CollectionUtils.htmlorm

相關文章
相關標籤/搜索