我正在使用 Swig 创建一个 Java 接口。基本上,在 C++ 中我有模板(
template<class T> class TSizedArray
{
int GetLength();
T* GetElements() const;
...
}
class Producer
{
TSizedArray<long> GetLongs();
...
}
该模板用作我需要通过 SWIG 导出到 Java 的某些 API 函数的返回值。但是,在 Java 中,我们希望使用原生 Java 数组而不是这个简单的包装器:
Java:
long[] result = Producer.GetLongs();
我不确定如何使用 SWIG 实现这一目标。模板有多个实例化,用作不同类中多个方法的输入和输出。我能够使用:
%typemap(jstype) TCustomElementList "long[]"
获取生成的 Java 接口为 long[] GetLongs(),但生成的实现创建了 TCustomElementList 类型的新对象。
感谢您的任何想法。