SWIG Java - 用户定义对象的数组

时间:2015-11-12 17:45:15

标签: java arrays swig user-defined-types

在C ++中我有一个简单的例子

class z {
   public int a;
};

struct testStructure
{
   z testArray[2];
};

当我尝试用SWIG包装它时,它无法返回" testArray"作为一个数组,但只是对象z。

我包含了" arrays_java.i",但这仅适用于基本类型。这意味着如果在" struct testStructure"我用" int"因为testArray不是" z",SWIG可以解释它并返回一个数组。但对于用户定义的类型,它有麻烦。

我需要在界面文件中做些什么,以便SWIG可以正确包装它。

由于

1 个答案:

答案 0 :(得分:0)

一个选项是创建一些额外的函数来访问swig接口文件中的数组元素。

%inline %{
    z getTestArrayElem(testStructure *ts, int index) {
        return ts->testArray[index];
    }
    void setTestArrayElem(testStructure *ts, int index, z *val) {
        ts->testArray[index] = *val;
    }
%}