使用泛型类执行基本的算术运算


问题内容

我想对像,,…(不包括和)这样的包装器类型Integer,每个操作仅使用一种通用方法执行基本的算术运算,例如加法,减法,乘法和除法。Float``Double``BigDecimal``BigInteger

我尝试使用泛型类执行以下操作(作为补充)。

public final class GenericClass<E extends Number> {

    public E add(E x, E y) {
        return x + y; // Compile-time error
    }
}

它发出一个编译时错误,

运算符+不能应用于E,E

有没有办法使用这种通用版本来实现这种操作?


问题答案:

不,没有办法做到这一点,否则它将内置到Java中。类型系统不够强大,无法表达这种东西。