好吧,我写了一些代码,我所做的只是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();
    }
}

10-05 23:21