为什么java.awt.Point提供了设置和获取double的方法,但将x和y存储为int';s
正如您在的Oracle文档中所看到的,x和y存储为为什么java.awt.Point提供了设置和获取double的方法,但将x和y存储为int';s,java,awt,precision,point,Java,Awt,Precision,Point,正如您在的Oracle文档中所看到的,x和y存储为int。但是,getX和getY返回double。虽然有一个setLocation方法接受2个double类型,但没有构造函数这样做。此外,double在内部被截断为int 有什么好的理由吗?通过使用一个接受double类型的方法,您可以避免对setLocation进行强制转换,但是当您调用getX和getY时,会遇到相反的问题。通过从getX和getY返回一个double,还存在对Point类精度的错误表述,因为它扩展自Graphics2D抽象
int
。但是,getX
和getY
返回double
。虽然有一个setLocation
方法接受2个double
类型,但没有构造函数这样做。此外,double
在内部被截断为int
有什么好的理由吗?通过使用一个接受
double
类型的方法,您可以避免对setLocation
进行强制转换,但是当您调用getX
和getY
时,会遇到相反的问题。通过从getX
和getY
返回一个double
,还存在对Point类精度的错误表述,因为它扩展自Graphics2D抽象类中使用的java.awt.geom.Point2D。出于兼容性原因,它是以这种方式实现的,因为在此之前,java只支持java.awt.Graphics,其中所有方法都是基于int的