feignClient获取null却转换为空对象

Blade 已结 1 186
清风看海
清风看海 剑童 2023-07-31 13:50

一、该问题的重现步骤是什么?

  1. 使用feignClient时,client服务端数据对象为null,例如R <testVO>,testVO为null

  2. R<testVO> getTestVO(String id){

  3.    return R.data(testService.getById(id));

  4. }

2. 使用Iclient获取R.data对象却是new testVO内容,对象存在,字段皆为空

   客户端获取对象时 Iclient.getTestVO.data 不为null,是new TestVO()内容.


二、你期待的结果是什么?实际看到的又是什么?

使用feignClient获data为null,客户端也为null

三、你正在使用的是什么产品,什么版本?在什么操作系统上?

blade cloud 3.1.1.RELEASE

四、请提供详细的错误堆栈信息,这很重要。


五、若有更多详细信息,请在下面提供。

1条回答
  •  admin
    admin (最佳回答者)
    2023-07-31 20:56

    feign的返回是通过序列化定义的,哪怕是null,序列化到返回的bean,也会生成一个new Bean()。

    如果想判断返回是否为null,可以通过判断id或者code等序号字段来,当 bean.getId()==null 则代表返回的就是null了,接着再做对应的逻辑就行。

    0 讨论(1)
提交回复