
即使类本身并非泛型,其构造函数也可以是泛型的。以下示例展示了非泛型类Summation拥有泛型构造函数的用法:
// 使用泛型构造函数
class Summation {
private int sum;
Summation(T arg) { // 泛型构造函数
sum = 0;
for (int i = 0; i <= arg.intValue(); i++) {
sum += i;
}
}
int getSum() {
return sum;
}
}
class GenConsDemo {
public static void main(String args[]) {
Summation ob = new Summation(4.0);
System.out.println("4.0 的总和是 " + ob.getSum());
}
}
Summation类计算并存储从0到构造函数传入参数的整数和。
泛型类型约束:
类型参数T受Number约束,这意味着构造函数可以接受任何Number类型的子类,例如Integer、Float或Double。
类型转换:
intValue()方法用于将传入的Number类型参数转换为int类型,以便进行求和计算。
灵活性和优势:
虽然Summation类本身不是泛型,但使用泛型构造函数赋予了它处理不同数值类型的灵活性,而无需创建多个重载构造函数。 这种方式简洁高效。








