当前位置: 首页 > 面试题库 >

Java可以将方法存储在数组中吗?

祁承嗣
2023-03-14
问题内容

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


 类似资料:
  • 问题内容: 例如: 这可能吗?最好的选择是什么? 问题答案: 推荐的方法是使用匿名函数: 如果要存储已经声明的函数,则可以简单地通过名称将其引用为字符串: 在PHP的旧版本(<5.3)中,不支持匿名函数,您可能需要诉诸使用(自PHP 7.2起已弃用): 所有这些方法在伪类型的文档中列出。 无论选择哪种功能,都可以直接调用该函数(PHP≥5.4)或使用:

  • 我不知道它是否可行,但我可以在数组中存储方法或函数吗?我现在知道多维数组,并使用它来存储我想要的许多数组。我现在想做的是将我创建的方法或函数存储在某个类中。因为我想将所有函数存储到某个类中,如果我想使用循环,就调用它。并使我的编码更简洁易懂。例子: 像那样?可能吗?

  • 问题内容: 我有一个需要保存的JSON数组。我当时正在考虑对其进行序列化,但是最好将它另存为SharedPreferences中的字符串,然后在需要读入它时对其进行重建? 问题答案: Java中的JSON对象无法立即实现可序列化。我已经看到其他人扩展了该类以允许这样做,但是对于您的情况,我只建议将JSON对象存储为字符串并使用其toString()函数。我已经成功了。 并找回它: http://d

  • 问题内容: 我是Java新手。我如何在HashMap中存储整数值数组,之后我将此HashMap写到txt文件中,但此刻目前不重要。我可以存储单个字段,但不能存储数组。有任何想法吗 ? 问题答案: 例如选一个 要不就

  • 问题内容: 我想将方法​​返回的数组存储到另一个数组中。我怎样才能做到这一点? 当我调用此方法时,如何将返回的数组(z)存储到另一个数组中? 问题答案: 上面的方法不返回数组本身,而是返回对该数组的引用。在调用函数中,您可以在另一个引用中收集此返回值,例如: 此后还将引用之前引用的同一数组。 如果这不是您想要的,并且要创建阵列的副本,则可以使用创建副本。