每当我单击按钮时,我都试图使用数组来帮助我在数组的新位置生成一个新的圆形对象。这是我收到的错误:
Bean_Drop.java:179:错误:需要数组,但是找到了圆
currentBall [n] =新的Circle(shift,yRed [n],RADIUS);
代码:
尝试创建数组:
private Circle[] currentBall = new Circle[NUMBER_OF_SLOTS];
尝试在方法中实现:
public void dropABall() {
int r;
int g;
int b;
r = rand.nextInt((55) + 1) + 100;
g = rand.nextInt((55) + 1) + 100;
b = rand.nextInt((55) + 1) + 100;
shift = paneWidth / 2;
moveCount[n] = 0;
position[n] = 0;
yRed[n] = RED_BALL_START_Y;
currentBall[n] = new Circle(shift, yRed[n], RADIUS);
currentBall[n].setFill(Color.rgb(r,g,b,1.0));
getChildren().add(currentBall);
}
之所以这样做是因为每次单击按钮时n都会增加,因此我希望它在数组的该位置放置一个圆圈。
答案 0 :(得分:0)
该方法似乎位于BeanMachine中,该方法定义了一个不同变量private Circle currentBall
(pastebin链接中的第109行)。错误消息说明的是,当看到currentBall[n]
时,它期望currentBall
是一个数组,但发现它实际上是一个圆。
这就是为什么定义两个具有相同名称(称为“阴影”)的方法很危险的原因-可能会使人感到困惑。
答案 1 :(得分:0)
currentBall在BeanMachine中的类型为Circle 但是在Bean_Drop中是一个Circle数组Circle []。
因此,当您从这些不同的类中调用它时,您将具有不同的行为。 我想在Bean_Drop类上将名称更改为currentBalls(复数)将更具表现力,并且修剪错误更少。