java - 我可以对 Number 基类进行算术运算吗?

标签 java

我正在尝试在 Java 中创建一个对数字执行操作的泛型类。在下面的例子中,添加如下:

public class Example <T extends Number> {

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

}

请原谅我的幼稚,因为我对 Java 泛型还比较陌生。此代码无法编译并出现错误:

The operator + is undefined for the argument type(s) T, T

我认为通过添加“扩展编号”代码可以编译。是否可以使用 Java 或者我必须为每个 Number 类型创建覆盖的方法?

最佳答案

数字没有与之关联的 + 运算符,也不能,因为没有运算符重载。

不过会很好。

基本上,您要求 java 自动装箱 Number 的后代,它恰好包括 Integer、Float 和 Double,可以自动装箱并应用加号运算符,但是,可能有任意数量的 Number 的其他未知后代不能自动装箱,直到运行时才能知道。 (该死的删除)

关于java - 我可以对 Number 基类进行算术运算吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3873215/

相关文章:

java - 如何在 Java 中创建受密码保护的 zip 文件夹?

java - 使用 Java 创建菜单 UI

java - org.jinterop.dcom.common.JIException : Access is denied. [0x80070005]

java - 使用 jpa 删除 map 的元素

java - 为 FtpClient 设置连接超时

java - 如何在 fragment 中使用基础 Activity ?

java - slf4j java.lang.LinkageError 加载程序约束违反

java - 保存到 LinkedHashSet <String> - 初学者

java - 生命游戏 Gridworld NullPointer 运行时错误

java - mockito - 如何模拟不同参数的不同行为