public class NowdayOrdersDto {
private Integer driverId;
private String name;
private Integer orderCount;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
private Date nowDay;
private String workingPicture;
private Integer prize_id;
private String prizeImgUrl;
// 重写set方法,将姓名的第二位隐藏
public void setName(String name) {
try {
this.name = name.replaceFirst(name.substring(1,2),"*");
}catch (Exception e) {
this.name = name;
}
}
当然也可以在get方法中使用,如果数据一定要保密处理那么set中最好,这样保证在序列化等其他操作时获得的都是统一处理过的数据。如果只是get的时候需要处理,那么可以重写get方法
普通的方式就是查出来之后循环再赋值,这样应该会更耗性能
nowdayOrdersDtos = orderMapper.nowdayDriverOrdersCount();
nowdayOrdersDtos.forEach(item -> item.setName(
item.getName().replaceFirst(item.getName().substring(1,2),"*")
));
return nowdayOrdersDtos;
并且,但这样会有一个弊端,就是如果forEach方法内出错,那么后面的数据将不会再执行方法
所以定义一个工具类
public static String setV(String name) {
try {
return name.replaceFirst(name.substring(1, 2), "*");
}catch (Exception e){
e.getStackTrace();
return name;
}
}
在foreach内调用,整个方法为
List<NowdayOrdersDto> nowdayOrdersDtos = null;
try {
nowdayOrdersDtos = orderMapper.nowdayDriverOrdersCount();
nowdayOrdersDtos.forEach(item -> item.setName(
CheckInfo.setV(item.getName())
));
return nowdayOrdersDtos;
}catch (Exception e) {
System.out.println(e);
log.info(e.getMessage());
}
return nowdayOrdersDtos;