Java类属性第二个字母大写问题,请求参数设置不上,返回参数小写

发布时间 2023-06-20 17:23:04作者: 867511789

 

其实这个问题几年前就遇到过,也解决了,但是最近又看到项目中有人这么用,就想起来了,写在这里,给自己也给大家提个醒。
在Java中,如果类的某个属性第二个字母是大写,比如:nToken,这样的属性一定要自己手动生成getter和setter方法。如果使用lombok的@Data注解,它默认生成的getter和setter如下:

private String nToken;
public void setNToken(String nToken){
    this.nToken = nToken;
}
public String getNToken(){
    return this.nToken;
}

可以看到它的第一个n是大写的,第二个字母也是保持大写。
但是这会导致两个问题:

  1. 请求参数传入nToken时,无法接收到参数,参数永远是null;
  2. 响应参数中的nToken变成了ntoken,第二个字母变成了小写。

为了避免这种问题,就需要在使用了@Data注解的情况下,手动生成这种属性的getter和setter。手动生成的getter和setter如下:

private String nToken;
public void setnToken(String nToken){
    this.nToken = nToken;
}
public String getnToken(){
    return nToken;
}

这样生成的方法,set/get后面的第一个字母变成了小写,也就是方法上的属性名和属性原来的名字大小写一致了。

这样再进行请求、响应,就正常了。