如何在Java中使用泛型语言运算符和扩展Number的泛型类

我想对两个扩展Number的相同类型的泛型参数执行操作.

可能吗?
我总是习惯在泛型参数上调用方法,但似乎使用运算符存在一些问题(对于参数类型T,T,运算符未定义).

public static <T extends Number> T sum(T a, T b){
    return a+ b;
}

我究竟做错了什么?

编辑:
我试着改善一点我的问题.我知道操作符没有为Number类型定义.这件事有点让人伤心,因为在不引入@Victor Sorokin建议的新界面的情况下执行这样的操作会很好.

但是我仍然不明白一件事:如果运算符没有在Number类中实现,那么至少在Double类中应该实现,因为我可以使用operator with double.
这些代码行都不会编译:

public static <T extends Double> T sum(T a, T b){

    T c = a +b;
}

为什么?

解决方法:

这是不可能的,因为Number没有与之关联的运算符.特别是,你不能这样做:

Number a = new Integer(1);
Number b = new Integer(2);
Number c = a + b;
上一篇:java – 在设置一些属性时管道(|)运算符如何在Android中工作?


下一篇:java – (a!= b)和(a!=(a = b))有什么区别?