泛型
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));