Java 5.0 泛型特性深度解析
1. 类型变量基础
在 Java 中,类型变量用于区分局部变量、方法参数和字段。在 java.util 等集合类中,常使用类型变量 E 表示元素类型。当类型变量可以代表任意类型时,通常使用 T (代表 Type)和 S 作为最通用的类型变量名,就像使用 i 和 j 作为循环变量一样。
需要注意的是,泛型类型声明的类型变量只能在该类型的实例字段、方法(以及嵌套类型)中使用,而不能在静态字段和方法中使用。这是因为泛型类型的实例才是参数化的,静态成员由类的所有实例和参数化共享,所以静态成员没有与之关联的类型参数。不过,包括静态方法在内的方法可以声明和使用自己的类型参数,并且每次调用这样的方法都可以进行不同的参数化。
2. 类型变量边界
在 Tree<V> 类的声明中,类型变量 V 是无约束的,即 Tree 可以用任何类型进行参数化。但很多时候,我们希望对可使用的类型施加一些约束,比如要求类型参数实现一个或多个接口,或者是指定类的子类。这可以通过为类型变量指定边界来实现。
以下是将 Tree 类重写为使 Tree 对象可序列化和可比较的示例代码:
import java.io.Serializab
超级会员免费看
订阅专栏 解锁全文
53

被折叠的 条评论
为什么被折叠?



