我正在阅读J. Bloch的有效Java,现在我正在讨论避免返回null,而是返回空集合的部分。这是本节中的代码示例:

// The right way to return a copy of a collection
public List<Cheese> getCheeseList() {
  if (cheesesInStock.isEmpty())
    return Collections.emptyList(); // Always returns same list
  else
    return new ArrayList<Cheese>(cheesesInStock);
}

我真的不明白,如果返回cheesesInStock,仅仅返回cheesesInStock.isEmpty()是怎么回事。为什么最好返回预定义的Collections.emptyList()。如果返回cheesesInStock,我们可能会遇到什么麻烦。

最佳答案

如果该方法返回cheesesInStock-调用者可以将一些奶酪添加到列表中。

这是一个坏习惯,因为您可能想控制添加过程。

09-25 21:37