为什么java.awt.Point提供了设置和获取double值的方法,但是将x和y存储为int值?

7
正如你在java.awt.Point的Oracle文档中所看到的,x和y被存储为int类型。然而,getX和getY返回double类型。虽然有一个接受两个double类型参数的setLocation方法,但没有构造函数可以实现这一点。此外,double类型在内部被截断为int类型。这是有充分理由的吗?如果有一个方法可以接受double类型参数,则可以避免在setLocation上进行转换,但调用getX和getY时则会出现相反的问题。通过从getX和getY返回double类型,也会误导Point类的精度。
1个回答

7
由于它继承自java.awt.geom.Point2D,该类用于Graphics2D抽象类。出于兼容性原因,实现了这种方式,因为在此之前,Java仅支持基于int的java.awt.Graphics中的所有方法。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接