thrift .field 赋值无效

博客讲述了在使用Thrift进行RPC调用时,由于optional字段赋值方式不当导致的返回值错误问题。详细解析了Thrift中isSet方法的作用,指出对于optional字段,必须使用set方法赋值,而不能直接通过对象属性,否则在序列化时该字段不会被传出,从而返回默认值。同时强调了required字段可以直接赋值。
摘要由CSDN通过智能技术生成

之前使用 thrift 的时候,给同事提供了接口,但是他调用我这边也返回值一直错误,我这边日志也显示入参为默认值。

后面发现是他直接使用 object.filed 进行赋值,由于我这边将属性设置的 optional 可选字段,导致他赋值无效。这里是因为 thrift 里面有个 isSet 的方法,如果直接通过属性进行赋值 isSet 方法为 false,因此在 rpc 调用的时候并没有把对应的属性序列化并传出,所以返回值一直为默认值。

因此,optional 赋值必须用 set 方法赋值。如果是 required 必填字段,可以直接用对属性进行赋值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值