场景:
当一个Req对象作为controller的入参时,Req对象中存在若干属性,当进行postman接口调用时,在程序中打断点发现某些属性值为null。
为null的属性名称:uName,uPassword等等类似命名方式的属性
原因以及解决办法
获取不到的原因是,lombok.Data注解在生成get/set方法时,生成的方法名称如下:
private String uName;
private String uPassword;
public String getUName() {
return uName;
}
public void setUName(String uName) {
this.uName = uName;
}
public String getUPassword() {
return uPassword;
}
public void setUPassword(String uPassword) {
this.uPassword = uPassword;
}
但是在真正使用到时,java反射所找的方法名字是张这样子的:
public String getuName() {
return uName;
}
public void setuName(String uName) {
this.uName = uName;
}
public String getuPassword() {
return uPassword;
}
public void setuPassword(String uPassword) {
this.uPassword = uPassword;
}
解决办法:
在该类中重写这些属性的get/set方法即可:
private String uName;
private String uPassword;
public String getuName() {
return uName;
}
public void setuName(String uName) {
this.uName = uName;
}
public String getuPassword() {
return uPassword;
}
public void setuPassword(String uPassword) {
this.uPassword = uPassword;
}
这样处理之后,再次使用postman测试时,这两个属性的值就能传进来了