guava 应用

/**
* 通过 Optional 对可以对泛型转换
* 并通过 BeanCopier 进行 bean copy
  * @see [copy bean]
  * @param paramVO
  * @param userInfo
  */
private void copyBean(Optional<? extends ScBaseParm> paramVO, UserInfo userInfo) {
BeanCopier copier = BeanCopier.create(paramVO.get().getClass(), userInfo.getClass(), false);
copier.copy(paramVO.get(), userInfo, null);
}


/**
* 去除重复数据
* @param userInfos
* @return
*/
public static Collection<UserInfo> doDuplicateData(List<UserInfo> userInfos) {
return Collections2.filter(userInfos,new Predicate<UserInfo>(){
@Override
public boolean apply(UserInfo input) {
return Optional.fromNullable(input.getRegistrationId()).isPresent();
}});
}


/**
* 返回满足条件的设备id
* @param userInfo
* @param tempRegistrationIds
* @return
*/
public static List<String> getConditionRegId(final UserInfo userInfo, Collection<UserInfo> tempRegistrationIds) {
List<String> registrationIds = FluentIterable.from(tempRegistrationIds).filter(new Predicate<UserInfo>(){
@Override
public boolean apply(UserInfo input) {
return StringUtils.equals(userInfo.getSysOrgCode(), input.getSysOrgCode());
}}).transform(new Function<UserInfo,String>(){
@Override
public String apply(UserInfo input) {
return input.getRegistrationId();
}}).toList();
return registrationIds;
}

package com.buss.loan.push.vo;

import java.util.List;

public class UserInfo {

// 用户名
private String userName;
// 用户角色
private String userKey;
// 设备id
private String registrationId;
// 相关设备id
private List<String> registrationIds;
// 机构码
private String sysOrgCode;
// 机构下的所有合同号
private String contractSns;
//------------- 首创
// 合同号
private String contractSn;
// 投资金额
private String amount;
// 还款期数
private String paidAmount;
// 已还本金
private String paidPrincipal;
// 已还利息
private String paidInterest;
// 还款期数
private String periods;
// 项目id
private String projectId;
// 融资人id
private String financierId;
// 担保人id
private String guaranteeId;
// 申请单编号
private String projectKey;
// 订单id
private String orderId;
// 原还款日期
private String oldRepayDate;
// 新还款日期
private String newRepayDate;
// 应还利息
private String repaymentAmount;
        ------ getter setter ------

}

猜你喜欢

转载自zhigang-online.iteye.com/blog/2333101