【发布时间】:2008-11-12 23:12:36
【问题描述】:
所以,假设我想编写一个对不同类型的数字进行操作的类,但我事先不知道我将在哪些类型的数字(即整数、双精度数等)上进行操作。
我想使用泛型为这个场景创建一个通用类。比如:
Adder<Double> adder = new Adder<Double>();
adder.add(10.0d, 10.0d); // = 20.0d
但是,我无法实例化传递给 Adder 类的泛型类型!那么——该怎么办?
【问题讨论】:
-
我假设 Adder 将被声明为 class Adder
,在这种情况下,您的“add”方法实现将只有 Number API 可以使用。您打算如何使其对所有 Number 对象正常工作?添加 BigInteger 的实现不适用于添加 double。 -
一个小问题:Short i = (short)20000; i+i 是什么?机器代码风格的算术是讨厌的。忍受它。或者确保下一种语言更智能。