其实这个问题几年前就遇到过,也解决了,但是最近又看到项目中有人这么用,就想起来了,写在这里,给自己也给大家提个醒。
在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是大写的,第二个字母也是保持大写。
但是这会导致两个问题:
- 请求参数传入nToken时,无法接收到参数,参数永远是null;
- 响应参数中的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后面的第一个字母变成了小写,也就是方法上的属性名和属性原来的名字大小写一致了。
这样再进行请求、响应,就正常了。
标签:nToken,Java,String,字母,大写,不上,setter,参数设置,属性 From: https://www.cnblogs.com/jialiguo/p/17494229.html