我有以下代码,其中 start
和 end
均为 java.awt.Point
类型。
start.translate(-1, 0);
end.translate(1, 0);
但是,当我使用 start = (0, 0) end = (0, 0)
运行此代码时,start
和 end
> 结果为 (0, 0)
。为什么会这样,只有我一个人这样吗?
编辑更奇怪的是,当我查看第 2 行之前和第 1 行之后的坐标时,点 start
和 end
都位于(-1, 0)
;本质上,translate(int x, int y)
翻译了两个点!
最佳答案
发生这种情况的唯一方法是 start
和 end
变量指向完全相同的对象。因此,在点 (0,0) 在 x 坐标中平移 -1,然后再次平移 +1 后,您将再次得到 (0,0)。检查创建 start
和 end
对象的代码。
关于java.awt.Point 翻译取消自身,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32447051/