1

是否可以在 JNI 中将输入参数作为输出参数?

假设我有:

void average(jint n1,jint n2,jint av);

av作为输出,为什么不输入。

4

1 回答 1

1

不是那种方式,不。

为了让被调用者修改参数,它必须有一个指向该参数的引用(即指针)。 jint而其他原语是按值传递的,这意味着参数的值从一个位置(内存或寄存器)传递到另一个位置。被调用者对该参数所做的任何更改都会对链中的最后一个元素进行,这显然对复制它的位置没有影响。

为了“修改”参数,您必须将引用(指针)传递给它。在 Java 中最直接的方法是传递一个单元素原始数组,并让被调用者用“返回”值替换第一个元素。

返回值或包含多个返回值的聚合对象通常更容易。

于 2013-05-28T13:53:11.557 回答