本篇结构:
- 简介
- 实例
一、简介
补充JNI对象数组访问实例。
JNI 中的数组分为基本类型数组和对象数组,它们的处理方式是不一样的,基本类型数组中的所有元素都是 JNI 的基本数据类型,可以直接访问。而对象数组中的所有元素是一个类的实例或其它数组的引用,和字符串操作一样,不能直接访问 Java 传递给 JNI 层的数组,必须选择合适的 JNI 函数来访问和设置 Java 层的数组对象。
对于对象数组,也就是引用类型数组,数组中的每个类型都是引用类型,JNI 只提供了如下函数来操作。
- GetObjectArrayElement / SetObjectArrayElement
和基本数据类型不同的是,不能一次得到数据中的所有对象元素或者一次复制多个对象元素到缓冲区。只能通过上面的函数来访问或者修改指定位置的元素内容。
字符串和数组都是引用类型,因此也只能通过上面的方法来访问。
二、实例
2.1、编写Java类
public class ObjectArray {
private native int[][] initInt2DArray(int size);
public static void main(String[] args) {
ObjectArray obj = new ObjectArray();
int[][] arr = obj.initInt2DArray(3);