31. 使用限定通配符来增加API的灵活性

This commit is contained in:
sjsdfg 2018-11-04 16:27:52 +08:00
parent ff5d7b2875
commit b4579bc8f7

View File

@ -1,4 +1,4 @@
# 31.使用限定通配符来增加 API 的灵活性
# 31. 使用限定通配符来增加 API 的灵活性
  如条目 28 所述,参数化类型是不变的。换句话说,对于任何两个不同类型的 `Type1``Type``List<Type1>` 既不是 `List<Type2>` 子类型也不是其父类型。尽管 `List<String>` 不是 `List<Object>` 的子类型是违反直觉的,但它确实是有道理的。 可以将任何对象放入 `List<Object>` 中,但是只能将字符串放入 `List<String>` 中。 由于 `List<String>` 不能做 `List<Object>` 所能做的所有事情,所以它不是一个子类型(条目 10 中的里氏替代原则)。