我正在尝试实现通用稀疏矩阵加法问题中提到的加法
class Matrix<T extends Number> { private T add(T left, T right) { if (left instanceof Integer) { return new Integer(((Integer)left).intValue() + ((Integer)right).intValue()); } }
found java.lang.Integer Required T我返回新Integer的行出现编译器错误。我不确定我缺少什么,因为T扩展了Number并且Integer是Number的子类。
found java.lang.Integer Required T
编译器不允许您执行此操作,因为T可能是其他一些类,例如Double。 您知道这T是Integer通过instanceof检查获得的,但是编译器却没有。
T
Double
Integer
instanceof