我应该直接访问int,还是从getter中获取double并进行强制转换



如中所述为什么java.awt.Point提供了设置和获取doubles的方法,却将x和y存储为int';sJava类Java.awt.Point没有返回CCD_ 1的get方法。但是,您可以直接访问xy,这两种类型都是int

话虽如此,两害相权取其轻?

Point location = this.getLocation();
int locX = (int)location.getX();
int locY = (int)location.getY();

Point location = this.getLocation();
int locX = location.x;
int locY = location.y;

我尽量保持尽可能使用getter(访问器方法)的标准做法,但在这种情况下,它需要强制转换。我可以避免强制转换,但必须直接访问字段xy。假设内部getXgetY只是将int强制转换为double,然后我将其强制转换回int0,这感觉是错误的。

直接访问方法的效率略高,看起来更好。从技术上讲,如果存在get/set方法,那么避免它们是不好的做法,但在这种情况下,我认为你应该破例。

最新更新