
即使类本身并非泛型,其构造函数也可以是泛型的。以下示例展示了非泛型类Summation拥有泛型构造函数的用法:
<code class="java">// 使用泛型构造函数
class Summation {
private int sum;
<T extends Number> 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());
}
}</code>Summation类计算并存储从0到构造函数传入参数的整数和。
泛型类型约束:
类型参数T受Number约束,这意味着构造函数可以接受任何Number类型的子类,例如Integer、Float或Double。
类型转换:
intValue()方法用于将传入的Number类型参数转换为int类型,以便进行求和计算。
灵活性和优势:
虽然Summation类本身不是泛型,但使用泛型构造函数赋予了它处理不同数值类型的灵活性,而无需创建多个重载构造函数。 这种方式简洁高效。
以上就是泛型构造函数的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号