Skip to main content

第八章 方法

本章讨论了方法设计的几个方面:如何处理参数和返回值,如何设计方法签名,以及如何编写方法文档。本章的大部分内容不仅适用于方法,也适用于构造函数。与第四章一样,本章重点讨论可用性、健壮性和灵活性。

49. 检查参数有效性

  本章(第 8 章)讨论了方法设计的几个方面:如何处理参数和返回值,如何设计方法签名以及如何记载方法文档。 本章中的大部分内容适用于构造方法和其他普通方法。 与第 4 章一样,本章重点关注可用...

50. 必要时进行防御性拷贝

  愉快使用 Java 的原因,它是一种安全的语言(safe language)。 这意味着在缺少本地方法(native methods)的情况下,它不受缓冲区溢出,数组溢出,野指针以及其他困扰...

51. 仔细设计方法签名

  这一条目是 API 设计提示的大杂烩,但它们本身并足以设立一个单独的条目。综合起来,这些设计提示将帮助你更容易地学习和使用 API,并且更不容易出错。   仔细选择方法名名称。名称应始终遵守...

52. 明智审慎地使用重载

  下面的程序是一个善意的尝试,根据 Set、List 或其他类型的集合对它进行分类: // Broken! - What does this program print? public cla...

53. 明智审慎地使用可变参数

  可变参数方法正式名称称为可变的参数数量方法「variable arity methods」 [JLS, 8.4.1],接受零个或多个指定类型的参数。 可变参数机制首先创建一个数组,其大小是在...

54. 返回空的数组或集合,不要返回 null

  像如下的方法并不罕见: // Returns null to indicate an empty collection. Don't do this! private final List<...

55. 明智审慎地返回 Optional

  在 Java 8 之前,编写在特定情况下无法返回任何值的方法时,可以采用两种方法。要么抛出异常,要么返回 null(假设返回类型是对象是引用类型)。但这两种方法都不完美。应该为异常条件保留异...

56. 为所有已公开的 API 元素编写文档注释

  如果 API 要可用,就必须对其进行文档化。传统上,API 文档是手工生成的,保持文档与代码的同步是一件苦差事。Java 编程环境使用 Javadoc 实用程序简化了这一任务。Javadoc...