gpt4 book ai didi

java - 如何将数组链接到方法

转载 作者:行者123 更新时间:2023-11-30 06:02:40 25 4
gpt4 key购买 nike

这个问题主要针对 Java,但如果它适用于所有面向对象编程语言,那就很好。

我想知道是否有一种方法可以将数组值链接到某个方法。我有一个包含许多方法的程序,当一个巨大的 if 脚本中存在某个条件时,一个方法就会运行。我发现这又慢又低效。我想知道是否可以创建一个数组,其中每个值都链接到要执行的相应方法。

例如:如果我有一个 0 - 99 之间的数字,并且我想根据我选择的数字运行某种方法。我可以制作一个具有相应方法的数组,而不是制作包含 100 种不同情况的 if 脚本吗?所有方法都在一个类中,每个数字都有自己的方法。它看起来像这样:

int num = 73;
methods[num](parameters);

我不知道这样的事情是否可能。非常感谢任何帮助!

最佳答案

定义一个接口(interface)(我们将其命名为ScriptTask),定义要执行的方法(我们将其命名为execute)。创建ScriptTask的数组任务。然后使用tasks[num].execute(parameters)

示例:

@FunctionalInterface
interface ScriptTask {
void execute(String s, int i);
}

class Script {

private ScriptTask[] tasks;

Script() {
this.tasks = new ScriptTask[2];
this.tasks[0] = this::foo;
this.tasks[1] = this::bar;
}

private void foo(String s, int i) {
System.out.println(s);
}

private void bar(String s, int i) {
System.out.println(i);
}

void run() {
for (int i = 0; i < tasks.length; i++) {
tasks[i].execute("hello", i);
}
}

public static void main(String[] args) {
new Script().run();
}
}

请注意,如果单个类中确实有 100 个不同的方法,那么这是一个明显的迹象,表明应该将其重构为几个不同的更简单的类,以便更容易阅读、理解和测试。以上是重构的第一步:您可以将每个方法重构为实现 ScriptTask 接口(interface)的单独类。

关于java - 如何将数组链接到方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53989521/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com