【发布时间】:2021-02-07 15:01:33
【问题描述】:
我有很多函数,想用数组来调用它们。 我知道如何在 c++ 中做到这一点,但不知道如何在 java 中做到这一点。 我的意图伪代码如下:
Array<function pointers> functionBook[100];
functionBook.add(function_0);
functionBook.add(function_1);
.
.
.
functionBook.add(function_99);
void functionCaller(int i){
functionBook[i](); // will call function_i()
}
【问题讨论】:
-
Java 没有函数指针。它有您可以使用的
@FunctionalInterface。搜索一下。 -
不要这样做,但您可以通过 JNI 使用内存地址调用函数。
-
@LppEdd 使用 Project Panama,您甚至不需要编写任何 JNI 代码。但是 Java 方法很复杂,因为它们没有固定地址。