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

Luk*_*uke 7 java precision point awt

正如您在Oracle Documentation for java.awt.Point中看到的那样,x和y存储为int.但是,getXgetY返回double.虽然有一种setLocation方法需要2 double种类型,但没有构造函数可以执行.此外,无论如何double都会被截断到int内部.

有这么好的理由吗?你可能会避免投上setLocation由具有采取的方法double类型,但是当你打电话给你有相反的问题getXgetY.通过返回doublefrom getX和,也会错误地表示Point类的精度getY.

Kon*_*tov 7

因为它从用于Graphics2D抽象类的java.awt.geom.Point2D扩展而来.它是出于兼容性原因而实现的,因为在此之前,java只支持java.awt.Graphics,其中所有方法都是基于int的.