今天写代码的时候遇到了一个错误一个极其简单的错误。
首先说下过程,我希望将后端Controller
返回的结果做一个统一封装,返回统一结果集。
在我重写ResponseBodyAdvice
中的beforeBodyWrite()
方法,准将结果封装到结果集返回,当我写完代码后发现返回结果为{}
。
于是我各种百度,谷歌,都没找到原因,最后我点进去结果集类中发现没有get
方法。
解决了一个业务问题后,我得到了另一个技术问题。那就是为什么没get
方法获取不到值。
起初我以为是Spring中Bean的原因。是因为我在往前端传递对象时用了FastJson做转换,FastJson是根据JavaBean
规范来写的,他是通过反射获得对象的get()
方法来获取对象属性的值,所以如果不写get()
方法。FastJson无法通过get()
方法获取对象属性值,所以返回前端的结果为{}
。