我可以对Number基类进行算术运算吗?
收藏

我试图在Java中创建一个通用类,该通用类将对数字进行运算。在以下示例中,添加如下:

public class Example <T extends Number> {

    public T add(T a, T b){
        return a + b;
    }

}

原谅我的天真,因为我是Java Generics的新手。此代码无法编译并显示以下错误:

未为参数类型T,T定义运算符+

我以为,加上“扩展数字”,代码便可以编译。是否可以使用此Java,还是必须为每种Number类型创建重写的方法?

最佳答案

Number没有关联的+运算符,也没有数字,因为没有运算符重载。

那就太好了。

基本上,您是在要求Java自动对Number的后代进行自动装箱,该后代恰好包括Integer,Float和Double,可以自动装箱并应用加号运算符,但是,可能有Number的许多其他未知后代无法自动装箱,直到运行时才能知道。 (该死的删除)

    公众号
    关注公众号订阅更多技术干货!