我想调用以下方法:
public void moveForward(int spaces) {
if(spaces >= 0) {
if(canvas.greenX == 0) {
if(canvas.greenY == 0) {
canvas.greenX = canvas.greenX + spaces;
}
else if((canvas.greenY - spaces) < 0) {
int m = spaces - canvas.greenY;
canvas.greenY = 0;
canvas.greenX = canvas.greenX + m;
}
else {
canvas.greenY = canvas.greenY - spaces;
}
}
}
canvas.repaint();
}
但我希望能够在我的画布对象中更改不同的值(即redX,redY,blueX,blueY等等),具体取决于需要向前移动的颜色。
我知道我可以再次写出这个方法,但是使用不同的值,但我确定有一种方法可以将值传递给方法本身。
任何指导都将不胜感激
答案 0 :(得分:0)
定义一系列算法,封装每个算法,然后制作 算法可以在该族中互换。
创建每个<?php
foreach($resp->searchResult->item as $item) {
if ($item->itemId == 1234) {
continue;
}
// Here you can use $item
....
}
的实例,并将其添加到immutable MoveStrategy
,并将Map<Move,MoveStrategy>
,Red
和Green
枚举添加为地图的关键。然后,您可以使用简单的Blue
或.get(RED).move()
.get(GREEN).move()
答案 1 :(得分:0)
您需要进一步分解您的类型。您在评论中说您的值为int
s。在这种情况下,您可以使用类java.awt.Point
,因为它具有int
x和y属性。
因此,在您的班级Canvas
中,您将:greenX,greenY,redX,redY等替换为:
Point green;
Point red;
Point blue;
并在您的方法moveForward
中,添加要作为参数调整的彩色点:
public void moveForward(int spaces, Point coloredPoint) {
在方法内部,您将canvas.greenX
替换为coloredPoint.x
,canvas.greenY
替换为coloredPoint.y
。
Voila,问题解决了!