目前,我使用Rectangle和Rectangle2D(Rectangle2D.Double)交换.
我想知道在选择正确的数据类型时我会考虑什么?我没有看到任何明显的区别,除了Rectangle(Rectangle2D的子类)有更多的API函数.
谢谢.
ama*_*ion 13
Rectangle使用int坐标.Rectangle2D是一个抽象类,如果您使用int,double或float坐标,则不关心它.
如果你需要double和float的更高精度,你必须使用Rectangle2D.
Rectangle2D是基类,因此如果您正在编写以抽象方式对矩形形状进行操作的代码,请转到Rectangle2D,并像这样分配它:
Rectangle2D rect = new Rectangle2D.Double(double, double, double, double);
Run Code Online (Sandbox Code Playgroud)
要么
Rectangle2D rect = new Rectangle(int, int, int, int)
Run Code Online (Sandbox Code Playgroud)
如果你知道你只打算处理整数,你可以一直使用矩形.
您可能会说Rectangle应该被称为Rectangle2D.Integer.但这也不是它,因为例如Rectangle是实现可序列化接口的三个中唯一的一个.
像skaffman评论的那样,这是一个遗留问题.
类 Rectangle 扩展了 Rectangle2D,这意味着您始终可以将 Rectangle 转换为 Rectangle2D,但相反,您可以使用 Rectangle2D.getBounds()。
| 归档时间: |
|
| 查看次数: |
13293 次 |
| 最近记录: |