默认情况下,泛型函数的变量类型可以代表多个类型,这导致无法访问任何属性。
此时,就需要为泛型添加约束来收缩类型,即缩窄类型取值范围,将以前可以代表任何类型的范围缩小到只能代表某几个类型。
添加泛型约束主要有以下两种方式:
1)指定更加具体的类型
2)添加约束
指定更加具体的类型
添加约束
例如:
对上面示例的说明:
1)上面示例中<T extends ILength>
不要理解为继承接口的意思,而是理解为受接口ILength的约束。
2)通过extends关键字使用该接口,为泛型(类型变量)添加约束:传入的类型必须具有length属性,属性多了没有关系,但必须要有length属性。