目前,我使用 Rectangle 和 Rectangle2D (Rectangle2D.Double) 互换。
我想知道在选择正确的数据类型时我应该考虑什么?我没有看到任何明显的区别,除了 Rectangle(Rectangle2D 的子类)有更多的 API 函数。
Thanks.
矩形使用 int 坐标。
Rectangle2D 是一个抽象类,它不关心您使用的是 int、double 还是 float 坐标。
如果您需要 double 和 float 的更高精度,则必须使用 Rectangle2D。
Rectangle2D 是基类,因此如果您正在编写以抽象方式操作矩形的代码,请使用 Rectangle2D,并像这样分配它:
Rectangle2D rect = new Rectangle2D.Double(double, double, double, double);
or
Rectangle2D rect = new Rectangle(int, int, int, int)
如果您知道只处理整数,则可以一直使用 Rectangle。
你可能会说 Rectangle 应该被称为 Rectangle2D.Integer。但这也不完全是这样,因为例如矩形是三个中唯一实现可序列化接口的之一。
就像斯卡夫曼评论的那样,这是一个遗留问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)