好吧,我写了一些代码,我所做的只是for循环,但是更改了我调用的方法。我尝试使用for循环,这样会更整洁(出于好奇,看看是否可以完成),但是当我这样做时它不会编译,因为它无法识别其中的项目我认为将数组作为一种方法。这就是我所拥有的:
String[] moveArray = {moveRight,moveDown,moveLeft,moveUp};
for (i = 0; i < 4; i++) {
while (myWumpus.moveArray[i]) {
myWumpus.moveArray[i];
generator.updateDisplay();
}
}
当我尝试编译时,我得到
not a statement myWumpus.moveArray[i]();
';' expected myWumpus.moveArray[i]();
(它引用while循环中的第一条语句)
所以,我认为这可能是因为我将其设置为String类型的Array吗?有方法类型吗?这是可能吗?任何解决方案都欢迎:)。另外,我可以使用4个while循环使其工作,因此您无需向我展示该解决方案。谢谢!
最佳答案
您不能将方法直接存储在数组中。但是,您可以存储对象,它们以不同的方式实现相同的方法。例如:
Mover[] moveArray = {new RightMover(), new DownMover() new LeftMover(), new UpMover() };
for (i = 0; i < 4; i++) {
while (myWumpus.moveArray[i]) {
moveArray[i].move();
generator.updateDisplay();
}
}