我有很多函数,希望使用数组来调用它们。我知道如何用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()
}
尝试使用lambda和功能接口:
public static void main(String[] args) {
List<Runnable> list = List.of(
() -> System.out.println("first"),
() -> System.out.println("second"),
() -> System.out.println("third")
);
list.forEach(Runnable::run);
}
您可以使用任何其他接口,例如Function
一个函数总是占用一段连续的内存区域,函数名在表达式中有时也会被转换为该函数所在内存区域的首地址,这和数组名非常类似。我们可以把函数的这个首地址(或称入口地址)赋予一个 指针变量,使指针变量指向函数所在的内存区域,然后通过指针变量就可以找到并调用该函数。这种指针就是 函数指针。 函数指针的定义形式为: returnType (*pointerName)(param list); returnType
主要内容:关于数组指针的谜题数组(Array)是一系列具有相同类型的数据的集合,每一份数据叫做一个数组元素(Element)。数组中的所有元素在内存中是连续排列的,整个数组占用的是一块内存。以 为例,该数组在内存中的分布如下图所示: 定义数组时,要给出数组名和数组长度,数组名可以认为是一个 指针,它指向数组的第 0 个元素。 在C语言中,我们将第 0 个元素的地址称为数组的首地址。以上面的数组为例,下图是 arr 的指向:
本文向大家介绍指针数组、数组指针、函数指针的区别?相关面试题,主要包含被问及指针数组、数组指针、函数指针的区别?时的应答技巧和注意事项,需要的朋友参考一下 指针数组:首先它是一个数组,数组的元素都是指针,数组占多少个字节由数组本身的大小决定,每一个元素都是一个指针,在32 位系统下任何类型的指针永远是占4 个字节。它是“储存指针的数组”的简称。 数组指针:首先它是一个指针,它指向一个数组。在32
问题内容: 我已经阅读了这个问题,但是我仍然不确定是否可以在Java中将指向方法的指针保留在Java数组中,如果有人知道这样做是否可行,那将是真正的帮助。我正在尝试找到一种优雅的解决方案,在不编写成百上千个“ if”的情况下保留字符串列表和相关函数。 干杯 问题答案: Java本身没有函数指针(或C#说法中的“委托”)。这种事情往往是用匿名子类来完成的。
6. 指向指针的指针与指针数组 指针可以指向基本类型,也可以指向复合类型,因此也可以指向另外一个指针变量,称为指向指针的指针。 int i; int *pi = &i; int **ppi = π 这样定义之后,表达式*ppi取pi的值,表达式**ppi取i的值。请读者自己画图理解i、pi、ppi这三个变量之间的关系。 很自然地,也可以定义指向“指向指针的指针”的指针,但是很少用到: int
我遇到了一个语法问题。看另一个StackOverflow答案并不能给出一个适用于我的问题的答案。至少不是我能理解的。 我的计划程序类: 这一切都编译得很好,但问题在于调用该函数中的成员函数指针: 编译这个会给我带来错误; 其他尝试: 有人能帮我解释一下我缺了什么知识吗?