设计技巧积累

泛型

1、通用方法使用某个子类。 如下:

// 父类中的方法
 public <T extends BaseBizInstruction> T  getConcreteBizInstruction(){
        return (T) bizInstruction;
    }

PayBizInstruction payBizInstruction=context.getConcreteBizInstruction();
RechargeBizInstruction rechargeBizInstruction = context.getConcreteBizInstruction();

其中PayBizInstruction 、 RechargeBizInstruction 都为BaseBizInstruction 的子类。

protected  <T extends Object> T getBean(Class<? extends T> objClass) {
        String beanName=StringUtils.uncapitalize(objClass.getSimpleName());
        T bean= (T) applicationContext.getBean(beanName);
        AssertUtil.assertNotNull(bean, AssertUtil.Level.ERROR, CardVoucherResultCode.PROGRAM_ERROR, "启动报错,缺少bean的配置{}",beanName );
        return bean;
    }

**List ** 1、转换,从list对象中获取 某个属性的list.

  /**
     * 转换List
     * @param fromList
     * @param function
     * @param <F>
     * @param <T>
     * @return
     */
    public static <F, T> List<T> transform(List<F> fromList, Function<? super F, ? extends T> function) {
        
        //如果fromList是null或者空,转换成空List
        if (CollectionUtils.isEmpty(fromList)) {
            return Lists.newArrayList();
        }
        
        List<T> targetList= Lists.newArrayList();
        for(F element:fromList){
            targetList.add(function.apply(element));
        }
        return targetList;
    }

2、将List对象转换为另一个List对象

//convertToEntity 为转换函数
    List<CardvoucherCardPayLogEntity> entityList= Lists.transform(instructionList,input -> convertToEntity((UseInstruction)input));

转载于:https://my.oschina.net/ouyangtaohong/blog/1421897

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值