java.awt.Point translate本身不执行
我有以下代码,其中包含java.awt.Point translate本身不执行,java,point,Java,Point,我有以下代码,其中包含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行之后的坐标时,两个点开始和结束都位于(-1,0);本质上,翻译(intx,inty)翻译了这两个点 发生这种情况的唯一方法是start和end变量指向
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行之后的坐标时,两个点
开始
和结束
都位于(-1,0)
;本质上,翻译(intx,inty)
翻译了这两个点 发生这种情况的唯一方法是start
和end
变量指向完全相同的对象。因此,在点(0,0)在x坐标系中平移-1,然后再平移+1之后,再次得到(0,0)。检查创建开始
和结束
对象的代码。是否开始
和结束
指向同一对象?这就解释了为什么它们都被变换,在x轴上平移它们-1和1后,结果是(0,0)。请显示创建开始
和结束
对象的代码。@MaximilianGerhardt实际上,这就是问题所在!我刚刚检查了我的代码,它们引用的是数组中的同一个对象!把这个作为答案贴出来,我会接受的。