第49条:检查参数的有效性

一般来说,前端传来的请求,后端一定要进行参数的校验,例如通过条件语句进行判断,不过更常规的方式其实是通过 javax.validation.constraints 包下的 @NotNull、@NotEmpty、@Size、@Max、@Min、@Pattern 等注解进行参数的校验。例如抛出异常或者打印日志。

第50条:必要时进行保护性拷贝

第51条:谨慎设计方法签名

  • 谨慎地选择方法的名称。
  • 不要过于追求提供便利的方法。
  • 避免过长的参数列表。
  • 对于参数类型,优先使用接口而不是类。
  • 对于boolean参数,要优先使用两个参数的枚举。

第52条:慎用重载

这一条只是建议不要乱用重载,有一个保守的规则:通过起不同名字的方式,避免导出两个具有相同参数数目的重载方法。

第53条:慎用可变参数

可变参数会创建一个数组,数组的大小就是调用者参数的数量,然后将参数放入数组,数组再传递给方法。

但是可变参数会带来的问题就是可能会导致参数为0的情况,建议先用一个固定参数接收值,然后再用可变参数接受剩余的内容。

第54条:返回零长度的数组或集合、而不是null

这一点我以前写过一篇文章,防止空指针。

第55条:谨慎返回Optional

第56条:为所有导出的API元素编写文档注释

  • 文档注释在源码或生成的文档中都应该是易于阅读的。
  • 针对重载的方法,需要有侧重的描述区别,而不是完全相同的描述。
  • 泛型和方法需要在注释中申明,参数的类型。
  • 枚举需要在文档中说明常量的含义。
  • 注解需要在文档中,需要说明所有成员。
  • 类或者静态方法是否线程安全,需要在文档中标明线程安全级别。