歧义错误

添加泛型之后带来了一种新的错误类型-歧义(ambiguity),对此应该警惕.当擦除特性导致两个明显不同的泛型声明被解析…

阅读全文 »

擦除特性

通常,程序员不必知道Java编译器是如何把源代码译成目标代码的,但是对于泛型的情况,对此过程有个大致了解是很重要的,因为…

阅读全文 »

原类型和遗留代码

由于JDK5以前的版本都不支持泛型,因此Java有必要提供某种从旧的非泛型代码的过度措施.简单来说,非泛型的遗留代码需要…

阅读全文 »

泛型接口

除了泛型类和泛型方法之外,接口也可以是泛型的.泛型接口的指定方式和泛型类相似.下面的示例创建了一个泛型接口Contain…

阅读全文 »

泛型构造函数

即使其类不是泛型,构造函数也可以是泛型的.例如,下面的程序中,Summation类不是泛型的,但其构造函数是泛型的: p…

阅读全文 »

泛型方法

正如前面的示例所示,泛型类中的方法可以使用类的类型形参,因此能够自动的成为与类型形参相关的泛型方法.但是,也可以声明使用…

阅读全文 »

约束通配符

通配符实参可以像类型形参那样被约束.在创建的方法只用于特定超类的子类的对象时约束通配符特别重要.为了进一步说明原因,下面…

阅读全文 »

使用通配符实参

尽管类型安全性很有用,但是有时却会妨碍完全可以接受的构造.例如,对于上面的NumericFns类,假定需要添加方法abs…

阅读全文 »

约束类型

类型形参可以由任何类类型取代.这样做对于大多数情况都适合,但是,有时需要限制传递给类型形参的类型.例如,假定要创建一个能…

阅读全文 »