JNA对象在java代码中是按引用传递还是按值传递

JNA对象在java代码中是按引用传递还是按值传递,java,pass-by-reference,jna,Java,Pass By Reference,Jna,我可以在java内部传递JNA对象进行初始化和编写吗 ->是否可能有一个初始化结构的每个成员的方法以及填充数组的其他方法等等 我在google/nor上找不到答案。您可以将本机内存同步到Java对象,但不能将Java对象覆盖到本机内存上,也不应该将Java对象内存直接公开给本机代码。JNA所做的是将本机内存与Java对象相关联,并提供同步这两个对象的方法 原始内存: Pointer memory = new Memory(128); memory.setInt(0, 1234) 结构化数据:

我可以在java内部传递JNA对象进行初始化和编写吗

->是否可能有一个初始化结构的每个成员的方法以及填充数组的其他方法等等


我在google/nor上找不到答案。您可以将本机内存同步到Java对象,但不能将Java对象覆盖到本机内存上,也不应该将Java对象内存直接公开给本机代码。JNA所做的是将本机内存与Java对象相关联,并提供同步这两个对象的方法

原始内存:

Pointer memory = new Memory(128);
memory.setInt(0, 1234)
结构化数据:

MyStructure s = new MyStructure();
s.int_field = 1234;
s.write();

s = new MyStructure(native_pointer);
s.read();
System.out.println("Field: %s", s.int_field);

您可以将本机内存同步到Java对象,但不能将Java对象覆盖在本机内存上,也不应该将Java对象内存直接公开给本机代码。JNA所做的是将本机内存与Java对象相关联,并提供同步这两个对象的方法

原始内存:

Pointer memory = new Memory(128);
memory.setInt(0, 1234)
结构化数据:

MyStructure s = new MyStructure();
s.int_field = 1234;
s.write();

s = new MyStructure(native_pointer);
s.read();
System.out.println("Field: %s", s.int_field);

“JNA对象”是什么意思?JNA提供了操作本机函数和数据的工具。例如,struct对象,我是在java内部传递相同的结构还是传递相同结构的副本->我是操纵相同的对象还是创建具有新内存位置的值的副本。你说的“JNA对象”是什么意思?JNA提供了操作本机函数和数据的工具。例如,struct对象,我是在java内部传递相同的结构还是传递相同结构的副本->我是操纵相同的对象还是创建具有新内存位置的值的副本。你能举一个简单的例子说明应该如何进行同步吗?另外,如果我在java中传递一个struct对象并更改其值,那么我是更改实际值还是只更改本地版本(因为java通常工作),您能提供一个简单的示例来说明如何进行同步吗?另外,如果我在java中传递一个struct对象并更改其值,那么我是更改实际值还是只更改本地版本(正如java正常工作一样)