RPC接口返回中,使用基本类型还是包装类?

目录

面试回答

知识扩展

在接口定义的时候,如何定义一个字段表示是否成功?


使用包装类,不要使用基本类型,比如某个字段表示费率的 Float rate,在接口中返回时,如果出现接口异常的情况,那么可能会返回默认值,float 的话返回的是 0.0,而 Float 返回的是 null。

在接口中,为了避免发生歧义,建议使用对象,因为他默认值是 null,当看到 null 的时候,我们明确的知道他是出错了,但是看到 0.0 的时候,你不知道是因为出错返回的 0.0,还是就是不出错真的返回了 0.0,虽然可以用其他的字段如错误码或者 getSuccesss 判断,但是还是尽量减少歧义的可能。

知识扩展

在接口定义的时候,如何定义一个字段表示是否成功?

以下四种:

        boolean success;
        Boolean success;
        boolean isSuccess;
        Boolean isSuccess;

建议使用过第一种:

首先,作为接口的返回对象的参数,这个字段不应该有不确定的 null 值,而 Boolean 类型的默认值是 null,而 boolean 的默认值是 false,所以,建议使用 boolean 来定义参数。其他,关于参数名称,要使用 success 还是 isSuccess,这一点在阿里巴巴 Java 开发手册中有明确规定和解释:

【强制】POJO 类中的任何布尔类型的变量,都不要加 is,否则部分框架解析会引起序列化错误。

反例:定义为基本数据类型 boolean isSuccess; 的属性,它的方法也是 isSuccess(),RPC 框架在反向解析的时候,“以为”对应的属性名称是 success,导致属性获取不到,进而抛出异常。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

协享科技

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值