我想做一些非常简单的事情:一个 Rectangle 类,其中坐标为 int 或 double。但是,在下面的代码中
public class Rect<T extends Number>
{
T X1;
T Y1;
T X2;
T Y2;
public Rect(T x1, T y1, T x2, T y2)
{
X1 = x1;
Y1 = y1;
X2 = x2;
Y2 = y2;
}
public Rect()
{
X1 = 0;
}
}
我收到一条错误消息“不兼容的类型:int 无法转换为 T”。我选择 java.lang.Number 作为基类类型,因为里面有 Integer 和 Double。当我写“X1 = new T(0)”时,我也会收到错误消息。有人能告诉我这里有什么问题吗?最后,我想和班级成员一起操作(加法等)。
在我看来,您应该假设所有坐标都是 Double 。最好让它变得简单。另一种解决方案是删除您尝试将值设置为零的构造函数。只需使用传递所有值的构造函数。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句