我有两个号码.例如:
Number a = 2;
Number b = 3;
//Following is an error:
Number c = a + b;
Run Code Online (Sandbox Code Playgroud)
为什么Numbers不支持算术运算?无论如何,我如何在java中添加这两个数字?(当然我从某个地方得到它们,我不知道它们是Integer还是float等).
我正在创建一个类,它应该能够与任何类型的数组(float,int等)一起使用,所以这里有一个方法:
// T extends Number
public synchronized T[] average() {
Number[] ret = new Number[queue[0].length];
for (int i = 0; i < ret.length; ++i) {
for (int j = 0; j < size; ++j) {
ret[i] += queue[j][i]; // WTF ERROR?!
}
ret[i] /= size; // WTF ERROR?!
}
return (T[])ret;
}
Run Code Online (Sandbox Code Playgroud)
除此之外不会编译因为"Number"没有实现"+ ="或"/ ="运算符.更糟糕的是,java的Number类甚至没有实现最基本的运算符,如"+"或" - "!如果java不允许我编译它,我怎么能创建一个返回Numbers数组平均值的方法,因为它认为数字不能被添加?!?!