我正在尝试在 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/