需要转的地方使用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