我正在尝试制作一个函数调用列表。我希望能够通过简单地从数组中选择方法来调用特定方法。
例如,如果我想调用 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/