目录
使用包装类,不要使用基本类型,比如某个字段表示费率的 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,导致属性获取不到,进而抛出异常。