07 方法(49-56)

Wu Jun 2020-01-02 15:51:27
05 Java > 02 Effective Java

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

不仅需要检查参数的有效性,还需要在函数的文档中给予明确的说明,如在参数非法的情况下,会抛出哪些异常,或导致函数返回哪些错误值等

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

如果不能够容忍对象进入数据结构之后发生变,就必须对该对象进行保护性拷贝,并且让拷贝之后的对象而不是原始对象进入到数据结构中。

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

第 52 条:慎用重载

对于重载方法的选择是静态的,而对于被覆盖的方法的选择则是动态的。

  1. 安全而保守的策略是,永远不要导出两个具有相同参数数目的重载方法。
  2. 如果方法使用可变参数,保守的策略是根本不要重载它。
  3. 在 Java 1.5 之后,需要对自动装箱机制保持警惕。

对于多个具有相同参数数目的方法来说,应该尽量避免重载方法。我们应当保证:当传递同样的参数时,所有重载方法的行为必须一致。

第 53 条:慎用可变参数

有的时候在重视性能的情况下,使用可变参数机制要特别小心。可变参数方法的每次调用都会导致进行一次数组分配和初始化。

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

private static final Cheese[] EMPTY_CHEESE_ARRAY= new Cheese[0];
Collections.emptyList();
Collections.emptySet();
Collections.emptyMap();

第 55 条: 返回 Optional 类型

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