java List转List Lists.transform 进阶

需要转的地方使用Lists.transform

contract.setAttachments(Lists.transform(getAttachmentMetas(contractInfo), AttachmentTransformer.Instance));

getAttachmentMetas(contractInfo)返回
List<AttachmentModel>,转换成List<AttachmentMetaData>

定义转换类,继承Function2类

public class AttachmentTransformer extends Function2<AttachmentModel,AttachmentMetaData> {

  public static final AttachmentTransformer Instance = new AttachmentTransformer();

//子类来实现
    @Override
    public AttachmentMetaData safeApply(AttachmentModel attachmentModel) {
  AttachmentMetaData metaData = new AttachmentMetaData();
   metaData.setFileId(attachmentModel.getFileId());                
   metaData.setTargetID(attachmentModel.getTargetId());        metaData.setTargetType(attachmentModel.getTargetType());        metaData.setCustomerId(attachmentModel.getCustomerId());
   return metaData;
    }

}

Function2实现Function接口

public abstract class Function2<F,T> implements Function<F,T> {

//覆写apply方法
    @Override
    public final T apply( F input){
        if(null == input) return null;
        return safeApply(input);
    }
// 定义抽象方法
    public abstract T safeApply(F input);
}

参考:
http://blog.csdn.net/mccand1234/article/details/51332055

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值