美文网首页
BiConsumer,ImmutableList,Immutab

BiConsumer,ImmutableList,Immutab

作者: 用户zzzzzz | 来源:发表于2023-11-30 11:38 被阅读0次

    导入依赖

    <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>30.0-jre</version>
    </dependency>
     <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.22</version>
    </dependency>
    

    1.使用

    import com.google.common.collect.ImmutableList;
    import com.google.common.collect.ImmutableMap;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.function.BiConsumer;
    
    public class UtilsNew {
    
    
        private static final List<BiConsumer<AssetInfoRequestVO.AssetInfo.Pair, AssetInfoPO>> PARM_LIST
                = ImmutableList.of(
                (pair, assetInfoPO) -> assetInfoPO.setParam1(JsonUtil.beanToJson(pair)),
                (pair, assetInfoPO) -> assetInfoPO.setParam2(JsonUtil.beanToJson(pair)),
                (pair, assetInfoPO) -> assetInfoPO.setParam3(JsonUtil.beanToJson(pair)),
                (pair, assetInfoPO) -> assetInfoPO.setParam4(JsonUtil.beanToJson(pair)),
                (pair, assetInfoPO) -> assetInfoPO.setParam5(JsonUtil.beanToJson(pair))
        );
    
        public static void main(String[] args) {
    
            /**
             ImmutableList是一个不可变、线程安全的列表集合,它只会获取传入对象的一个副本。不允许null值,不可变集合
             结果:  [a, b, c, d]
             */
            List<String> list = ImmutableList.of("a", "b", "c", "d");
            System.out.println(list);
    
    
           /* java.util.function.BiConsumer是一个Java 8功能接口。
            BiConsumer不返回值,它接受两个参数作为参数。
            BiConsumer的功能方法是accept(Object, Object)。
            结果:Key:面积 Value:123
            */
            BiConsumer<String, String> biConsumer = (key, value) ->
                    System.out.println("Key:" + key + " Value:" + value);
            biConsumer.accept("面积", "123");
    
    
            List<AssetInfoRequestVO.AssetInfo.Pair> fieldList = new ArrayList<>();
    
            AssetInfoRequestVO.AssetInfo.Pair t1 = new AssetInfoRequestVO.AssetInfo.Pair();
            t1.setLable("车牌号");
            t1.setValue("浙100000");
            AssetInfoRequestVO.AssetInfo.Pair t2 = new AssetInfoRequestVO.AssetInfo.Pair();
            t2.setLable("价格");
            t2.setValue("100000元");
            fieldList.add(0, t1);
            fieldList.add(1, t2);
    
            //组装参数
            AssetInfoPO result = AssetInfoPO.builder().id(11).code("汽车").build();
            for (int i = 0; i < fieldList.size(); i++) {
                PARM_LIST.get(i).accept(fieldList.get(i), result);
            }
            System.out.println(JsonUtil.beanToJson(result));
    
            /*ImmutableMap.of(k1,v1,k2,v2)直接添加键值对,不需要像map一样还得一个一个put进去,
            如果只用一次的话,可以直接用ImmutableMap.of(k1,v1,k2,v2)当map参数传入方法中,省去新建map对象这一步
            of 方法入参最多只能有 5 对
            */
            ImmutableMap<String, String> map = ImmutableMap.of("参数1", "value1", "参数2", "value2");
            System.out.println(map.toString());
        }
    
    }
    
    

    2.结果

    [a, b, c, d]
    Key:面积 Value:123
    {"id":11,"code":"汽车","param1":"{\"lable\":\"车牌号\",\"value\":\"浙100000\"}","param2":"{\"lable\":\"价格\",\"value\":\"100000元\"}","param3":null,"param4":null,"param5":null}
    {参数1=value1, 参数2=value2}
    

    3.AssetInfoRequestVO 对象

    import lombok.Data;
    import java.util.List;
    public class AssetInfoRequestVO {
        List<AssetInfo> familyAssetInfoList;
        @Data
        public static class AssetInfo{
            /**
             * 资产类别代码
             */
            private  Integer code;
            /**
             * 资产属性列表
             */
            private List<AssetInfoRequestVO.AssetInfo.Pair>pairList;
            @Data
            public static class Pair{
                /**
                 * 资产属性名称
                 */
                private  String lable;
                /**
                 * 资产属性值
                 */
                private  String value;
            }
        }
    }
    

    相关文章

      网友评论

          本文标题:BiConsumer,ImmutableList,Immutab

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