java - 如何在 Java 中动态调用方法

标签 java

我正在尝试制作一个函数调用列表。我希望能够通过简单地从数组中选择方法来调用特定方法。

例如,如果我想调用 drawCircle() 并且该方法位于第一个索引中,而不是我可以说的 runMethod[0]。

这是我目前所拥有的。我制作了一个带有两个输入的界面:

public interface Instruction {  
   void instr( int a, int b );
} 

在我的其他类(class)中,我有一个方法列表(或者它们应该是实现指令的类吗?)。我希望能够从列表中调用这些方法中的任何一个,如下所示:

instList[0].mov( 1, 3 );
instList[2].add( 4, 5 );

等等。希望这已经足够清楚了。提前致谢。

最佳答案

除非我误解了您要实现的目标,否则常规的 Java 方法是实现接口(interface):

interface Instruction {  
    void instr( int a, int b );
}

class MoveInstruction implements Instruction {
    void instr(int a, int b) {
        // do something
    }
}

class AddInstruction implements Instruction {
    void instr(int a, int b) {
        // do something else
    }
}

现在:

Instruction[] instructions = new Instruction[5];
instructions[0] = new MoveInstruction();
instructions[2] = new AddInstruction();

...

instructions[0].instr(1, 3);
instructions[2].instr(4, 5);

如果您只在设置数组时使用 MoveInstruction/AddInstruction 类,anonymous classes是让它更快一点的好方法。

关于java - 如何在 Java 中动态调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7462490/

相关文章:

java - 如何将 getRealPath ("/") 路径从 .metadata 更改为 WEB-INF

java - int 相当于 .charAt() 方法

java - Solr 5.2 如何定义一个列表或字符串集合

java - 为什么在调试 JBoss 时 Eclipse 会跳行?

java - 从 SVN 存储库创建 JAR

java桌面浏览: how to get the current URL?

Java Socket 服务器端无法读取 play 框架应用程序中传入的文本行

java - 从失败中恢复的数据库错误 Qualtz

java - Spring/Eclipse 项目突然记录一切

java - 将值保存到二维数组中